问题描述
我正在尝试从Firebase下载文件并将文件从temp目录复制到下载目录。 每件事都可以在模拟器上正常运行,但不能在真实设备上运行。 我做错了。
从目录中复制文件:-
Future<void> downloadFile() async {
final Directory extDir = await getApplicationDocumentsDirectory();
final String dirPath = '/storage/emulated/0/Download/';
await Directory(dirPath).create(recursive: true);
String timestamp() =>
DateTime.now().millisecondsSinceEpoch.toString();
final File file = widget.videoFile;
bgFile = await file
.copy('/storage/emulated/0/Download/${timestamp()}.mp4');
}
从Firebase下载
"Future<void> downloadFile() async {
_loadingStreamCtrl.sink.add(true);
final Random random = Random();
var randid = random.nextInt(10000);
Dio dio = Dio();
final String dirPath = '/storage/emulated/0/Download/';
await Directory(dirPath).create(recursive: true);
FileUtils.mkdir([dirPath]);
await dio.download(
mediaUrl,dirPath + randid.toString() + ".mp4",);
_loadingStreamCtrl.sink.add(false);
}"
错误日志:
D/ColorViewRootUtil(28225): nav gesture mode swipeFromBottom ignore false downY 204 mScreenHeight 2340 mScreenWidth 1080 mStatusBarHeight 54 globalScale 1.125 nav mode 3 event MotionEvent { action=ACTION_DOWN,actionButton=0,id[0]=0,x[0]=777.0,y[0]=204.0,toolType[0]=TOOL_TYPE_FINGER,buttonState=0,classification=NONE,metaState=0,flags=0x0,edgeFlags=0x0,pointerCount=1,historySize=0,eventTime=22468101,downTime=22468101,deviceId=5,source=0x1002,displayId=0 } rotation 0
D/WindowManager(28225): Add to mViews: android.widget.FrameLayout{2fd087b V.E...... ......I. 0,0-0,0},this = android.view.WindowManagerGlobal@febfae2,pkg= com.leymonlabs.jhoom
E/flutter (28225): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: FileSystemException: Creation failed,path = '/storage/emulated/0/Download' (OS Error: Permission denied,errno = 13)
E/flutter (28225): #0 _Directory.create.<anonymous closure> (dart:io/directory_impl.dart:124:11)
E/flutter (28225): #1 _rootRunUnary (dart:async/zone.dart:1192:38)
E/flutter (28225): #2 _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter (28225): #3 _FutureListener.handleValue (dart:async/future_impl.dart:141:18)
E/flutter (28225): #4 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:682:45)
E/flutter (28225): #5 Future._propagateToListeners (dart:async/future_impl.dart:711:32)
E/flutter (28225): #6 Future._completeWithValue (dart:async/future_impl.dart:526:5)
E/flutter (28225): #7 Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:556:7)
E/flutter (28225): #8 _rootRun (dart:async/zone.dart:1184:13)
E/flutter (28225): #9 _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (28225): #10 _CustomZone.runGuarded (dart:async/zone.dart:979:7)
E/flutter (28225): #11 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1019:23)
E/flutter (28225): #12 _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
E/flutter (28225): #13 _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
权限:-
uses-permission android:name =“ android.permission.INTERNET” 使用许可 android:name =“ android.permission.READ_EXTERNAL_STORAGE” 使用许可 android:name =“ android.permission.WRITE_EXTERNAL_STORAGE” 使用许可 android:name =“ android.permission.ACCESS_FINE_LOCATION”
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)