Android 9.0中sdcard 的权限和挂载问题

问题:Android9 无法向u盘写入文件

报错:

复制代码
2023-12-04 11:02:45.137 15640-15640 System.err              com.example.permissiontest           W  java.io.FileNotFoundException: /storage/C5AF-1F0E/MyImages1/Image-2676.png (Permission denied)
2023-12-04 11:02:45.137 15640-15640 System.err              com.example.permissiontest           W  	at java.io.FileOutputStream.open0(Native Method)
2023-12-04 11:02:45.137 15640-15640 System.err              com.example.permissiontest           W  	at java.io.FileOutputStream.open(FileOutputStream.java:308)
2023-12-04 11:02:45.137 15640-15640 System.err              com.example.permissiontest           W  	at java.io.FileOutputStream.<init>(FileOutputStream.java:238)
2023-12-04 11:02:45.137 15640-15640 System.err              com.example.permissiontest           W  	at java.io.FileOutputStream.<init>(FileOutputStream.java:180)
2023-12-04 11:02:45.137 15640-15640 System.err              com.example.permissiontest           W  	at com.example.permissiontest.MainActivity.SaveImageUSB(MainActivity.java:203)
2023-12-04 11:02:45.137 15640-15640 System.err              com.example.permissiontest           W  	at com.example.permissiontest.MainActivity.onClick(MainActivity.java:122)
2023-12-04 11:02:45.137 15640-15640 System.err              com.example.permissiontest           W  	at android.view.View.performClick(View.java:6597)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1194)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at android.view.View.performClickInternal(View.java:6574)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at android.view.View.access$3100(View.java:778)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at android.view.View$PerformClick.run(View.java:25885)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at android.os.Handler.handleCallback(Handler.java:873)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at android.os.Handler.dispatchMessage(Handler.java:99)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at android.os.Looper.loop(Looper.java:193)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at android.app.ActivityThread.main(ActivityThread.java:6718)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at java.lang.reflect.Method.invoke(Native Method)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
2023-12-04 11:02:45.138 15640-15640 System.err              com.example.permissiontest           W  	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

解决方法:更改路径

本来u盘的路径为/storage/C5AF-1F0E

替换为 /mnt/media_rw/C5AF-1F0E 即可

复制代码
if (Build.VERSION.SDK_INT>Build.VERSION_CODES.O){
            root = root.replace("/storage","/mnt/media_rw/");
        }

原因:Android 9.0中sdcard 的权限和挂载问题_sdcard_rw-CSDN博客

相关推荐
冬奇Lab6 小时前
Android 开发要变天了:Google 专为 Agent 重建工具链,Token 减少 70%、速度提升 3 倍
android·人工智能·ai编程
imuliuliang9 小时前
存储过程(SQL)
android·数据库·sql
AgCl2311 小时前
MYSQL-6-函数与约束-3/17
android·数据库·mysql
zzb158011 小时前
Fragment 生命周期深度图解:从 onAttach 到 onDetach 完整流程(面试必备)
android·java·面试·安卓
众少成多积小致巨11 小时前
Android 源码查看笔记
android·源码
angerdream12 小时前
Android手把手编写儿童手机远程监控App之前台服务
android
敲代码的瓦龙13 小时前
Android?Activity!!!
android
重生之我在安卓搞音频15 小时前
二、Android 音频框架
android·音视频
studyForMokey15 小时前
【Android面试】Java专题 todo
android·java·面试
代码改善世界15 小时前
【MATLAB初阶】矩阵操作(二):矩阵的运算
android·matlab·矩阵