失败打开流READ_EXTERNAL_STORAGE Flutter

问题描述

在应用程序中出现此错误。只需在空白处轻按,即可将其扔到控制台中。

W/ClipData( 7375): Failure opening stream
W/ClipData( 7375): java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/file/119902 from pid=7375,uid=10423 requires android.permission.READ_EXTERNAL_STORAGE,or grantUriPermission()
W/ClipData( 7375):  at android.os.Parcel.createException(Parcel.java:1950)
W/ClipData( 7375):  at android.os.Parcel.readException(Parcel.java:1918)
W/ClipData( 7375):  at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
W/ClipData( 7375):  at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:146)
W/ClipData( 7375):  at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:698)
W/ClipData( 7375):  at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1460)
W/ClipData( 7375):  at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1404)
W/ClipData( 7375):  at android.content.ClipData$Item.coercetoText(ClipData.java:351)
W/ClipData( 7375):  at io.Flutter.plugin.platform.PlatformPlugin.getClipboardData(PlatformPlugin.java:278)
W/ClipData( 7375):  at io.Flutter.plugin.platform.PlatformPlugin.access$700(PlatformPlugin.java:24)
W/ClipData( 7375):  at io.Flutter.plugin.platform.PlatformPlugin$1.getClipboardData(PlatformPlugin.java:81)
W/ClipData( 7375):  at io.Flutter.embedding.engine.systemchannels.PlatformChannel$1.onMethodCall(PlatformChannel.java:141)
W/ClipData( 7375):  at io.Flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
W/ClipData( 7375):  at io.Flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
W/ClipData( 7375):  at io.Flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
W/ClipData( 7375):  at android.os.MessageQueue.nativePollOnce(Native Method)
W/ClipData( 7375):  at android.os.MessageQueue.next(MessageQueue.java:326)
W/ClipData( 7375):  at android.os.Looper.loop(Looper.java:160)
W/ClipData( 7375):  at android.app.ActivityThread.main(ActivityThread.java:6854)
W/ClipData( 7375):  at java.lang.reflect.Method.invoke(Native Method)
W/ClipData( 7375):  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
W/ClipData( 7375):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:860)

我试图像这样使用Permissin_Handler软件包;

Future<bool> permissionGetter(BuildContext context) async {
    if (await Permission.contacts.request().isGranted) {
      return true;
    }

    Map<Permission,PermissionStatus> statuses = await [
      Permission.storage,].request();
    print(statuses[Permission.location]);

    return false;
  }

从此FutureBuilder;

@override
  Widget build(BuildContext context) {
    SizeConfig().init(context);
    return FutureBuilder(
      future: permissionGetter(context),builder: (context,builder){
        print(builder);
        if(builder.connectionState == ConnectionState.done){
          print(builder);
          return MaterialApp(
            initialRoute: RegisterScreen.id,routes: {
              RegisterScreen.id: (context) => RegisterScreen(),LoginScreen.id: (context) => LoginScreen()
            },);
        }
        return Text("HIII");
      },);
  }

但是print(builder)只给了我这两行; (在声明之前)

I/Flutter ( 7375): AsyncSnapshot<bool>(ConnectionState.waiting,null,MissingPluginException(No implementation found for method requestPermissions on channel Flutter.baseflow.com/permissions/methods))

(在if语句中)

I/Flutter ( 7375): AsyncSnapshot<bool>(ConnectionState.done,MissingPluginException(No implementation found for method requestPermissions on channel Flutter.baseflow.com/permissions/methods))

我目前还没有使用本地存储,但是将来我打算使用。如何获得许可并解决此问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)