歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android 通過 包名啟動Activity

Android 通過 包名啟動Activity

日期:2017/3/1 10:49:41   编辑:Linux編程

最近因為項目需要,不讓app在應用列表顯示,只能用自己的啟動器啟動。基本搞定,效果實現了,不過與我的計劃相差挺遠的。

  1. private void RunApp(String packageName) {
  2. PackageInfo pi;
  3. try {
  4. pi = getPackageManager().getPackageInfo(packageName, 0);
  5. Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
  6. // resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
  7. resolveIntent.setPackage(pi.packageName);
  8. PackageManager pManager = getPackageManager();
  9. List<ResolveInfo> apps = pManager.queryIntentActivities(
  10. resolveIntent, 0);
  11. ResolveInfo ri = apps.iterator().next();
  12. if (ri != null) {
  13. packageName = ri.activityInfo.packageName;
  14. String className = ri.activityInfo.name;
  15. Intent intent = new Intent(Intent.ACTION_MAIN);
  16. // intent.addCategory(Intent.CATEGORY_LAUNCHER);
  17. ComponentName cn = new ComponentName(packageName, className);
  18. intent.setComponent(cn);
  19. startActivity(intent);
  20. }
  21. } catch (NameNotFoundException e) {
  22. // TODO Auto-generated catch block
  23. e.printStackTrace();
  24. }
  25. }

網上都有,不說了,目前只有這個能實現我的解決方案。其余的幾種方法網上都有,不多說了。

Copyright © Linux教程網 All Rights Reserved