我有一個 XF android 應用程式,用于檢查設備上是否安裝了 Google 地圖應用程式。
在 Android 11 之前,我使用了以下代碼:
public static bool IsAppInstalled(string packageName)
{
PackageManager pm = MainActivity.AppInstance.PackageManager;
bool installed;
try
{
pm.GetPackageInfo(packageName, PackageInfoFlags.Activities);
installed = true;
}
catch (PackageManager.NameNotFoundException)
{
installed = false;
}
return installed;
}
}
與packageName==“com.google.android.apps.maps”。
現在我正在三星 Galaxy S10 上測驗它,該設備運行 Android 11,谷歌地圖安裝為股票應用程式,上述函式回傳 false。
如何檢查設備上是否安裝了該應用程式?
我也試過這個解決方案,但沒有運氣。
謝謝你。
uj5u.com熱心網友回復:
自 Android 11(API 級別 30)起,大多數用戶安裝的應用程式默認不可見。在您的清單中,您必須靜態宣告您將獲取有關哪些應用程式的資訊,如下所示:
<manifest package="com.example.game">
<queries>
<package android:name="com.example.store" />
<package android:name="com.example.services" />
</queries>
...
</manifest>
在<queries>元素不提供足夠的包可見性的極少數情況下,您可以使用該QUERY_ALL_PACKAGES權限。
欲知更多詳情,請查看:
https://developer.android.com/training/package-visibility
https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/354353.html
