如果我打电话getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES)返回null
PackageManager pm = getPackageManager() ;
List<PackageInfo> pis = pm.getInstalledPackages (PackageManager.GET_PROVIDERS) ;
我得到的安装包的列表,包括他们宣称任何provivders(即与督察[I] .providers可能是非空)。
但是,如果我有标志中PackageManager.GET_ACITIVITIES,如
PackageManager pm = getPackageManager() ;
List<PackageInfo> pis = pm.getInstalledPackages (PackageManager.GET_ACTIVITIES | PackageManager.GET_PROVIDERS) ;
我希望得到已安装的软件包的“相同”的名单,但与督察[I] .activities为非空以及。但我没有,我得到一个空的名单。
在documentation中未提及的标志中包含PackageManager.GET_ACTIVITES有什么特别之处吗?
我目前的解决办法是离开PackageManager.GET_ACTIVITIES出来的标志,然后通过返回的列表循环如下:
for (PackageInfo pi : pis) {
try {
PackageInfo tmp = pm.getPackageInfo (pi.packageName, PackageManager.GET_ACTIVITIES) ;
pi.activities = tmp.activities ;
}
catch (NameNotFoundException e) {
Log.e (TAG, e.getMessage()) ;
}
,但似乎像一个真正的杂牌。
我能找到getInstalledPackages(PackageManager.GET_ACTIVITIES)返回一个空列表的唯一一提的是here,但在这种情况下,这个问题似乎已经被一些关于调用getInstalledPackages()主应用程序线程之外,这是不是在我的情况。
p.s.这是姜饼的0.602 VZW的身材,如果是重要的
感谢电脑,它真的帮助我 –