簡體   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