如何使用 xamarin.forms 检查我的应用程序是否始终或在 Android 中使用时具有权限

How to check whether my app has the permission in always or when in use in Android using xamarin.forms

我正在为我的应用程序使用 xamarin.forms,并且我正在使用 Android 设备。我想检查我的应用程序在 Android.

中是使用“始终”还是“使用应用程序时”定位

对于 iOS 我可以使用 CLLocationManager.Status.

检查权限状态

但是在 android 我无法检查“始终”或“使用应用程序时”的权限状态

CrossPermissions.Current.CheckPermissionStatusAsync(Permission.LocationWhenInUse);

通过使用上述条件,它始终 return 授予“始终”或“使用应用程序时”。我想要确切的许可状态。 所以任何人都请帮我解决这个问题。

好像没有api可以return明确android中位置权限的状态。但是用户需要在android.

中请求两个权限,android.permission.ACCESS_FINE_LOCATIONandroid.permission.ACCESS_BACKGROUND_LOCATION

此外,两次权限的不同结果意味着不同的位置权限状态:

  • 总是:两种权限都被授予
  • 使用应用程序时:允许 android.permission.ACCESS_FINE_LOCATION
    拒绝 android.permission.ACCESS_BACKGROUND_LOCATION

因此您可以进行运行时权限检查,以明确位置权限的状态。