我有一个广播接收器获取“android.intent.action.PACKAGE_ADDED”和“android.intent.action.PACKAGE_REPLACED”意图(所以当手机上安装了一个软件包时,我的应用程序获得了一个意图包裹名字)。但是当我尝试使用PackageManager按包名获取PackageInfo时,它会抛出一个NameNotFoundException。
这可能是什么原因(除了不存在的包,显然不是这样)?我找不到很多权限 - 是否有一个我错过了导致误导性错误?
try {
id = UAppIDUtils.GetUAppID(ctx.getPackageManager().getPackageInfo(pkgName, PackageManager.GET_SIGNATURES));
} catch (NameNotFoundException e) {
id = null;
Log.v(TAG, "Error finding package info");
e.printStackTrace();
}
ctx是上下文; pkgName是包名。
答案 0 :(得分:1)
想出来 - 事实证明PACKAGE_ADDED意图附带的字符串以“package:”开头,然后包名称 - 我没有抓住它,因为它在我的打印语句中并不突出没有写。只需要从数据字符串的开头剥离标签,我就可以了。
答案 1 :(得分:0)
我遇到这个错误的一个非常讨厌的时间是因为我试图找到/意图的应用程序的包名称在我复制的文本中有隐藏的字符。只是要小心重新输入你的包名或做一个日志,看看你真正想要的包名,因为它可能不是你的想法。