当我请求 MANAGE_EXTERNAL_STORAGE 时出现空权限错误。在反应本机应用程序中。当我去扔文档时(https://reactnative.dev/docs/permissionsandroid)没有这样的权限,但实际上,为了访问隐藏文件,我们需要这个权限。 如果我在 androidmanifest.xml 文件中授予相同的权限,甚至不询问用户。
清单文件
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
const pm1 = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE); //
const pm2 = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE);
const pm3 = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.MANAGE_EXTERNAL_STORAGE); // ACCESS_MEDIA_LOCATION
if (pm1 && pm2) return true
const userResponse = await PermissionsAndroid.requestMultiple([
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE.at,
PermissionsAndroid.PERMISSIONS.MANAGE_EXTERNAL_STORAGE
]);
根据谷歌的新指南,我们不能请求 MANAGE_EXTERNAL_STORAGE 权限,此特定权限仅保留给少数应用程序(例如防病毒和文件管理器),仅当您请求此权限时,您需要向谷歌游戏商店提供如此多的解释,但如果您仍然需要此权限,您可以使用以下代码请求,这将帮助用户导航权限页面。
包:react-native-intent-launcher
IntentLauncher.startActivity({
action: 'android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION',
data: 'package:com.yourpackageNameHere'
})