拒绝本机Android权限被拒绝

时间:2017-08-07 11:18:20

标签: react-native

我正在测试Android 5.1.1上的应用,其中存储权限会自动被拒绝。当我启动应用程序时,没有提示给予应用程序的权限。但是,当我使用新的Android权限模型在Android 6.0及更高版本上测试应用程序时,一切正常。如何正确设置权限并获取权限对话框以在Android 5.0及更低版本的应用程序启动时提示?

2 个答案:

答案 0 :(得分:1)

我刚刚在android 5.0版的位置权限上遇到了同样的问题。

这似乎是RN中的一个错误(我们使用的是v0.44.0)

  const granted = await PermissionsAndroid.request(
    PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, {
      title: 'Enable Location Tracking',
      message: 'Use your location to find nearby things',
    },
  );

  if (granted === PermissionsAndroid.RESULTS.GRANTED) {
    return true;
  }

出于某种原因,在android 5.0上,grant被设置为true,而不是“grant”,这是在6.0 +上设置的。

我通过改变

解决了这个问题
  if (granted === true || granted === PermissionsAndroid.RESULTS.GRANTED)

答案 1 :(得分:0)

现在无法测试,但作为指导原则:

async function requestStorageAccess() {
  const permission = await PermissionsAndroid.request(
    PermissionsAndroid.WRITE_EXTERNAL_STORAGE
  )

  if (permission === PermissionsAndroid.RESULTS.GRANTED) {
    console.log('Granted');
  }
}

读: http://facebook.github.io/react-native/releases/0.45/docs/permissionsandroid.html

和:https://developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE