Xamarin 表单 android - google 未找到地图应用

Xamarin forms android - google maps app not found

我有一个 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".

现在我正在 Android 11 和 Google 地图安装为股票应用程序的三星 Galaxy S10 上测试它,并且上面的函数 return false。

如何检查设备上是否安装了该应用程序?

我也尝试过 解决方案,但没有成功。

谢谢。

自 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