这个插件的androID特定代码:
@OverrIDe public voID onMethodCall(MethodCall call,Result result) { if (call.method.equals("getUserDataDirectory")) { String path = Environment.getExternalStorageDirectory().getabsolutePath(); result.success(path); } else { result.notImplemented(); } }
返回的路径是正确的存储/模拟/ 0.但现在如果我尝试迭代抛出目录我得到一个权限被拒绝.
error.log中
[ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:E/Flutter ( 3381): filesystemexception: Directory Listing Failed,path = '/storage/emulated/0/' (OS Error: Permission denIEd,errno = 13)E/Flutter ( 3381): #0 _Directory._fillWithDirectoryListing (dart:io-patch/directory_patch.dart:32)E/Flutter ( 3381): #1 _Directory.ListSync (directory_impl.dart:214)E/Flutter ( 3381): #2 _MyAppState.initPathRequest (/data/user/0/com.yourcompany.userdatadirectoryexample/cache/exampleIAKNFP/example/lib/main.dart:34:25)
main.dart
path = await Userdatadirectory.getUserDataDirectory; var dir = new Directory(path); List contents = dir.ListSync(); for (var fileOrDir in contents) { print(fileOrDir.path); }
我的示例/ androID / app / src / AndroIDManifest.xml包含以下额外的提交:
<uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission androID:name="androID.permission.READ_EXTERNAL_STORAGE"/>
这里有什么问题?
解决方法 您可以使用这两个包中的任何一个来请求设备权限: https://pub.dartlang.org/packages/simple_permissions或 https://pub.dartlang.org/packages/permission.他们有简单的API和全面的例子. 总结以上是内存溢出为你收集整理的android – 通过Flutter插件在ExternalStorageDirectory访问权限被拒绝全部内容,希望文章能够帮你解决android – 通过Flutter插件在ExternalStorageDirectory访问权限被拒绝所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)