繁体   English   中英

Android PackageManager 只能检测物理设备上的系统应用

[英]Android PackageManager can only detect system apps on physical devices

当我在某些物理设备上运行我的应用程序时,Android PackageManager 似乎只检测系统应用程序。 例如,我安装了 Facebook 应用程序,但在com.facebook.katana上调用PackageManager.getPackageInfo会导致NameNotFoundException getInstalledPackages(PackageManager.GET_META_DATA) returns a list of what appears to be system apps only (ie the package name starts with com.android , com.samsung , etc). 同样,这似乎只发生在我测试过的物理设备上。 在我的模拟器上,一切都按预期工作(即检测到所有应用程序)。

任何想法为什么会发生这种情况?

This can happen on Android 11 devices due to new policies on package visibility https://developer.android.com/about/versions/11/privacy/package-visibility

您应该在应用程序清单中声明要在执行时间中搜索的 package 名称

<manifest>
    ...
    <queries>
        <package android:name="package.name.to.search"/>
    </queries>
</manifest>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM