sha*_*yal 10 android dart android-permissions flutter
我正在使用读写权限来访问外部存储并获取权限,我正在使用权限处理程序包
AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)
为了获得用户的许可
var status = await Permission.storage.request();
if (status.isGranted) {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) => const Home())
);
} else if (status.isPermanentlyDenied) {
openAppSettings();
}
Run Code Online (Sandbox Code Playgroud)
上述权限和代码适用于 Android 版本 12 之前的版本,但当涉及 Android 版本 13 时,它无法正常工作,它只是打开应用程序设置而不是询问权限
小智 13
适用于 Android 13 或更高版本
菜单权限
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
Run Code Online (Sandbox Code Playgroud)
权限处理程序(请求)
await Permission.photos.request();
Run Code Online (Sandbox Code Playgroud)
小智 10
设置1
添加权限 android 清单
<!-- Required only if your app targets Android 13 or higher. -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="33" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="33" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
Run Code Online (Sandbox Code Playgroud)
设置2
var status = await Permission.manageExternalStorage.request();
if (status.isGranted) {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) => const Home())
);
} else if (status.isPermanentlyDenied) {
openAppSettings();
}
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您使用 targetSdk 版本 33,则使用以下代码。
bool permissionStatus;
final deviceInfo = await DeviceInfoPlugin().androidInfo;
if (deviceInfo.version.sdkInt > 32) {
permissionStatus = await Permission.photos.request().isGranted;
} else {
permissionStatus = await Permission.storage.request().isGranted;
}
Run Code Online (Sandbox Code Playgroud)
使用此权限清单文件:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24892 次 |
最近记录: |