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