Home > Mobile >  Xamarin forms android - google maps app not found
Xamarin forms android - google maps app not found

Time:11-10

I have an XF android app that checks if the Google Maps app is installed on device.

Before Android 11 I used this code:

 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;
      }
  }

with packageName == "com.google.android.apps.maps".

Now I'm testing it on a Samsung Galaxy S10 with Android 11 and with Google Maps installed as stock app, and the above function return false.

How can I check if that app is installed on the device?

I have tried also this solution but without luck.

Thank you.

CodePudding user response:

Since Android 11 (API level 30), most user-installed apps are not visible by default. In your manifest, you must statically declare which apps you are going to get info about, as in the following:

<manifest package="com.example.game">
    <queries>
        <package android:name="com.example.store" />
        <package android:name="com.example.services" />
    </queries>
    ...
</manifest>

In the rare cases where the <queries> element doesn't provide adequate package visibility, you can use the QUERY_ALL_PACKAGES permission.

For more details,please check:

https://developer.android.com/training/package-visibility

https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9

  • Related