2011-06-06 34 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); 
     } 

你可以使用此代码来获取已安装应用程序的信息。