React Native-无法使用PermissionsAndroid请求位置权限

foz*_*elo 6 android android-permissions react-native android-6.0-marshmallow

我正在尝试请求运行时位置权限,但我的诺言不断抛出此异常:

“试图使用权限API,但主机活动未实现PermissionAwareActivity”

我的代码如下所示:

  PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION)
  .then((preGranted) => {
    console.log('pre-granted', preGranted)
    if (!preGranted) {
      PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
        { 'title': 'Enable location', 'message': 'Boss said so..' }
      )
      .then((granted) => {
        if (granted) {
          console.log('GRANTED AFTER ASKING:', granted)
          debugger
        }
      })
    }
  })
Run Code Online (Sandbox Code Playgroud)

在我的清单中,我有:

  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

有人听到过这个消息吗?什么是PermissionAwareActivity,无法在线查找有关它的任何信息。

Dar*_*ish -5

注意:这个答案是基于Java而不是Reactive Native。请参考其他答案以获取 React Native 特定解决方案

什么是 PermissionAwareActivity

PermissionAwareActivity 是一个帮助您获取运行时权限的接口。您必须在自己的活动中实现这些方法。

  public interface PermissionAwareActivity {

  int checkPermission(String permission, int pid, int uid);


  int checkSelfPermission(String permission);

  boolean shouldShowRequestPermissionRationale(String permission);

  void requestPermissions(String[] permissions, int requestCode, PermissionListener listener);
}
Run Code Online (Sandbox Code Playgroud)