2011-06-06 30 views
1

嗨,我使用了本教程中的以下代碼,列出了我正在開發的應用程序中的所有已安裝的應用程序。Android獲取包名的安裝位置

http://impressive-artworx.de/2011/list-all-installed-apps-in-style/

我改變了的onClick我自己的對話,我現在需要做的是能夠獲取應用程序的位置。這是如果它在/系統/應用程序或/數據/應用程序,我希望能夠敬酒按下的應用程序的整個路徑,但無法弄清楚如何做到這一點。我可以通過在onClick中執行app.getPackageName()來獲取包名,但是我怎樣才能得到apks路徑呢?感謝您的任何建議或幫助,非常感謝!

回答

3

谷歌上搜索我得到了我一直在尋找

PackageManager m = getPackageManager(); 
String s = getPackageName(); 
PackageInfo p = m.getPackageInfo(s, 0); 
s = p.applicationInfo.sourceDir; 

工作多一點後,很好在這裏找到

Get Application Directory

感謝它與我的谷歌上搜索幫助,以幫助什麼尋找

1

看看this。特別是與publicSourceDir片段。

+0

看起來很有趣,雖然不能真正弄清楚如何使用它,你或任何其他人有任何經驗 – GFlam 2011-06-07 02:29:13

1
 List<PackageInfo> packs = packageManager.getInstalledPackages(0); //PackageManager.GET_META_DATA 
     for(int i=0; i < packs.size(); i++) { 
     PackageInfo p = packs.get(i); 
     ApplicationInfo a = p.applicationInfo; 
     // skip system apps if they shall not be included 
     if ((!includeSysApps) && ((a.flags & ApplicationInfo.FLAG_SYSTEM) == 1)) { 
      continue; 
     } 
     App app = new App(); 
     app.setTitle(p.applicationInfo.loadLabel(packageManager).toString()); 
     app.setPackageName(p.packageName); 
     app.setVersionName(p.versionName); 
     app.setVersionCode(p.versionCode); 
     CharSequence description = p.applicationInfo.loadDescription(packageManager); 
     app.setDescription(description != null ? description.toString() : ""); 
     apps.add(app); 
     } 

你可以使用此代碼來獲取已安裝應用程序的信息。