歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android 通過 包名啟動Activity

最近因為項目需要,不讓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.   
  12.             ResolveInfo ri = apps.iterator().next();  
  13.             if (ri != null) {  
  14.                 packageName = ri.activityInfo.packageName;  
  15.                 String className = ri.activityInfo.name;  
  16.   
  17.                 Intent intent = new Intent(Intent.ACTION_MAIN);  
  18.                 // intent.addCategory(Intent.CATEGORY_LAUNCHER);   
  19.   
  20.                 ComponentName cn = new ComponentName(packageName, className);  
  21.   
  22.                 intent.setComponent(cn);  
  23.                 startActivity(intent);  
  24.             }  
  25.         } catch (NameNotFoundException e) {  
  26.             // TODO Auto-generated catch block   
  27.             e.printStackTrace();  
  28.         }  
  29.   
  30.     }  

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

Copyright © Linux教程網 All Rights Reserved