flutter 需要android权限,WRITE_EXTERNAL_STORAGE或grantUriPermission()

ne5o7dgx  于 2023-01-02  发布在  Flutter
关注(0)|答案(2)|浏览(383)

当使用Image-Picker打包并运行时,显示此异常。拍摄图像后,容器中未显示图像。

ki0zmccv

ki0zmccv1#

除了需要将WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE添加到android/app/src/main/AndroidManifest.xml之外

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxx.yyy">
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
...
</manifest>

您还需要运行时请求权限,通过使用permission_handler包:

import 'package:simple_permissions/simple_permissions.dart';

PermissionStatus permissionResult = await SimplePermissions.requestPermission(Permission. WriteExternalStorage);
if (permissionResult == PermissionStatus.authorized){
  // code of read or write file in external storage (SD card)
}

注:
1.* * 首次运行SimplePermissions.requestPermission时,应用程序将弹出一个窗口,您必须**单击ALLOW

给予许可。
1.如果你已经点击了DENY,然后卸载调试应用程序并重新调试它来安装和修复这个-〉触发弹出窗口,让你有机会点击ALLOW

3qpi33ja

3qpi33ja2#

在Flutter中使用“图像拾取器”包时,您似乎在访问外部存储所需的Android权限方面遇到了问题。
要解决此问题,请将“写入外部存储”权限添加到Android应用的清单文件中,具体方法是在“AndroidManifest.xml”文件中包含以下行:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

如果您的应用面向Android 6.0(API级别23)或更高版本,您还需要在运行时向用户请求此权限。您可以使用“permission handler”包或内置Android“requestPermissions()”函数来完成此操作。以下是如何使用“permission handler”包请求“WRITE EXTERNAL STORAGE”权限的示例:

相关问题