日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 读写文件权限_flutter 文件下载

發布時間:2025/3/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 读写文件权限_flutter 文件下载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

sa as z主要用到下面的幾個庫

flutter_downloader: ^1.1.7path_provider: 1.1.2permission_handler: ^3.1.0progress_dialog: ^1.1.0+1

準備步驟:

下載肯定是要先權限配置和權限申請.

1.權限配置.

清單文件配置權限

申請權限 ,加入依賴

permission_handler: ^3.1.0// 申請權限 Future _checkPermission() async { // 先對所在平臺進行判斷 if (Theme.of(context).platform == TargetPlatform.android) { PermissionStatus permission = await PermissionHandler() .checkPermissionStatus(PermissionGroup.storage); if (permission != PermissionStatus.granted) { Map permissions = await PermissionHandler() .requestPermissions([PermissionGroup.storage]); if (permissions[PermissionGroup.storage] == PermissionStatus.granted) { return true; } } else { return true; } } else { return true; } return false; }

2.下載目錄配置

在 Flutter 里實現文件讀寫,需要使用 path_provider 和 dart 的 io 模塊。path_provider 負責查找 iOS/Android 的目錄文件,IO 模塊負責對文件進行讀寫

然后我們創建我們想要保存文件的目錄

內外部存儲常用目錄操作

context.getFilesDir() 內部存儲data/data/包名/files目錄context.getCacheDir() 內部存儲data/data/包名/cache目錄Environment.getExternalStorageDirectory() 外部存儲根目錄Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_DCIM) 外部存儲公有目錄context.getExternalFilesDir() 外部存儲私有目錄storage/sdcard/Android/data/包名/files。一般存儲長時間保存的數據。

使用getApplicationDocumentsDirectory,下載之后生成的文件目錄是這樣的

/storage/emulated/0/Android/data/com.lyy.flutter_download_demo/files/Download/test.apk

使用getTemporaryDirectory(臨時/緩存文件目錄,系統可以在清理的時候刪除的),生成之后是這樣的
/data/user/0/com.lyy.flutter_download_demo/cache/Download/test.apk

這兩個目錄都是需要root權限才可以看到的.

沒有權限

因為我沒有root成功,所以我暫時使用外置存儲.下載成功之后是這樣的目錄結構,如果為了讓其他app可以訪問到你的文件,請放置在 external storage 目錄下

/storage/emulated/0/Android/data/com.lyy.flutter_download_demo/files/Download/test.apk

// 獲取存儲路徑 Future _findLocalPath() async { // 因為Apple沒有外置存儲,所以第一步我們需要先對所在平臺進行判斷 // 如果是android,使用getExternalStorageDirectory // 如果是iOS,使用getApplicationSupportDirectory final directory = Theme.of(context).platform == TargetPlatform.android ? await getExternalStorageDirectory() : await getApplicationSupportDirectory(); return directory.path; }

3.下載

flutter_downloader庫的使用.可以參考文檔https://pub.dev/packages/flutter_downloader,ios部分需要自己配置,android需要自己配置fileprovider.

如果使用到filedownload庫的下載后打開文件,查看filedownload源代碼可以看到,是需要使用到他的peovider的配置的

把下面這段加到清單文件里面去

在initstate里面初始化,

@overridevoid initState() {super.initState();FlutterDownloader.registerCallback(downloadCallback);}

在dispose方法里面銷毀掉這個監聽

@override void dispose() { FlutterDownloader.registerCallback(null); super.dispose(); }??// 執行下載文件的操作_doDownloadOperation() async { /** * 下載文件的步驟: * 1. 獲取權限:網絡權限、存儲權限 * 2. 獲取下載路徑 * 3. 設置下載回調 */ // 獲取權限 var isPermissionReady = await _checkPermission(); if (isPermissionReady) { // 獲取存儲路徑 var _localPath = (await _findLocalPath() + '/Download'); final savedDir = Directory(_localPath); // 判斷下載路徑是否存在 bool hasExisted = await savedDir.exists(); // 不存在就新建路徑 if (!hasExisted) { savedDir.create(); } // 下載鏈接 String downloadUrl = "https://s.beta.myap p.com/myapp/rdmexp/exp/file2/2019/12/17/commegstarboss_1.0.1_d70afe0a-0d88-5323-b0a1-5d438673042c.apk"; // 下載 _downloadFile(downloadUrl, _localPath); } else { showToast("您還沒有獲取權限"); }}_downloadFile(downloadUrl, savePath) async { await FlutterDownloader.enqueue( url: downloadUrl, savedDir: savePath, showNotification: true, // show download progress in status bar (for Android) openFileFromNotification: true, // click on notification to opden downloaded file (for Android) );}@overrideWidget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ /* Text('getApplicationDocumentsDirectory:' + pathloacal), Text('getExternalStorageDirectory:' + pathexternal),*/ RaisedButton( child: Text("點我下載文件"), onPressed: () { // 執行下載操作 _doDownloadOperation(); }, ), ], ), ), );}

總結

以上是生活随笔為你收集整理的android 读写文件权限_flutter 文件下载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 狠狠躁 | 黄色a∨ | 色综合一区二区三区 | 亚洲免费一级 | 这里只有精品视频在线 | 日韩av线上 | 91精品国产91 | 久久久欧洲 | 欧美日韩国产图片 | 青草国产| 99视频在线精品免费观看2 | 91成人国产 | 欧美在线a | 日日射天天操 | 欧美久久综合网 | 伊人网五月天 | 日本人dh亚洲人ⅹxx | 亚洲男人天堂 | av色在线 | 无遮挡裸光屁屁打屁股男男 | 一区二区视频在线免费观看 | 十八禁视频网站在线观看 | 最新99热| 欧美日韩一区二区三区在线播放 | 在线观看免费视频a | 美女污软件 | 色女人网 | 亚洲13p| 国产偷国产偷av亚洲清高 | 日本中文字幕在线观看视频 | 无码少妇精品一区二区免费动态 | 天天操天天拍 | 撸啊撸在线视频 | 亚洲自拍偷拍精品视频 | 亚洲人xxx日本人18 | 久久极品 | 艳妇乳肉豪妇荡乳 | 久久婷婷国产麻豆91天堂 | 91精产国品 | 欧洲天堂网 | 日韩欧美激情视频 | 露出调教羞耻91九色 | www日本黄色 | 91高跟黑色丝袜呻吟动态图 | 中文字幕人妻一区二区三区在线视频 | 国产精品二| 久久久av免费 | 在线观看h视频 | 国产又粗又猛又黄又爽 | 国产精品免费看片 | 少妇的性事hd | 国产乱淫精品一区二区三区毛片 | 日本少妇电影 | 久久三| 抱着老师的嫩臀猛然挺进视频 | 光溜溜视频素材大全美女 | 一区二区三区国产精品视频 | 国产精品v日韩精品v在线观看 | 手机看片日韩久久 | 免费看一级黄色大片 | 免费av一区二区三区 | 国产又猛又粗 | 青青青视频在线 | 久久久综合av | 亚洲综合av一区二区三区 | 亚洲AV蜜桃永久无码精品性色 | 九一精品视频 | 丝袜+亚洲+另类+欧美+变态 | 91视频久久久久 | 久久日视频 | 日韩一二区 | 成人深夜在线 | 中文 日韩 欧美 | 舒淇裸体午夜理伦 | 欧美视频在线一区 | 国产精品资源在线 | 国产一级片av | 精品久久在线观看 | 亚洲午夜视频在线观看 | 日本h在线观看 | 日韩图片一区 | 毛片在线不卡 | 女人十八毛片嫩草av | 日本激情一区二区 | 男人操女人网站 | 亚洲情人网 | 久久视频这里只有精品 | 91一区二区三区四区 | 国产嫩草在线 | 免费在线观看污网站 | 成人无高清96免费 | 国产91高清| 婷婷亚洲综合五月天小说 | 在线不卡一区 | 国产一区二区三区在线观看 | 日本美女交配 | 久人人 | 久久久久在线视频 | 免费搞黄网站 |