getActivity / XXPermissions

Android 权限请求框架,已适配 Android 14
Apache License 2.0
5.44k stars 735 forks source link

[Bug]:写外部存储文件出现异常 #265

Closed a120476536 closed 3 months ago

a120476536 commented 4 months ago

框架版本【必填】

18.5

问题描述【必填】

我需要保存一份文件到u盘 导出异常java.io.FileNotFoundException: /storage/0000-0000/Download/文件1号1705658235553.xls: open failed: EACCES (Permission denied) at libcore.io.IoBridge.open(IoBridge.java:496) at java.io.FileOutputStream.<init>(FileOutputStream.java:235) at java.io.FileOutputStream.<init>(FileOutputStream.java:186) at com.ajts.androidmads.library.SQLiteToExcel.exportTables(SQLiteToExcel.java:105) at com.ajts.androidmads.library.SQLiteToExcel.access$000(SQLiteToExcel.java:25) at com.ajts.androidmads.library.SQLiteToExcel$1.run(SQLiteToExcel.java:137) at java.lang.Thread.run(Thread.java:919) Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied) at libcore.io.Linux.open(Native Method) at libcore.io.ForwardingOs.open(ForwardingOs.java:167) at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252) at libcore.io.ForwardingOs.open(ForwardingOs.java:167) at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7279) at libcore.io.IoBridge.open(IoBridge.java:482) at java.io.FileOutputStream.<init>(FileOutputStream.java:235)  at java.io.FileOutputStream.<init>(FileOutputStream.java:186)  at com.ajts.androidmads.library.SQLiteToExcel.exportTables(SQLiteToExcel.java:105)  at com.ajts.androidmads.library.SQLiteToExcel.access$000(SQLiteToExcel.java:25)  at com.ajts.androidmads.library.SQLiteToExcel$1.run(SQLiteToExcel.java:137)  at java.lang.Thread.run(Thread.java:919) 

复现步骤【必填】

点击导出按钮使用StorageChooser(这是个三方框架 https://github.com/codekidX/storage-chooser ) 选择目录执行 导出,结果报了异常

是否必现【必填】

项目 targetSdkVersion【必填】

29

出现问题的手机信息【必填】

非市场上机型 (亮钻机型)

出现问题的安卓版本【必填】

Android 10

问题信息的来源渠道【必填】

自己遇到的

是部分机型还是所有机型都会出现【必答】

仅当前机型出现

框架最新的版本是否存在这个问题【必答】

框架文档是否提及了该问题【必答】

是否已经查阅框架文档但还未能解决的【必答】

issue 列表中是否有人曾提过类似的问题【必答】

是否已经搜索过了 issue 列表但还未能解决的【必答】

是否可以通过 Demo 来复现该问题【必答】

提供报错堆栈

demo的话 这个机型比较尴尬 定制机型

提供截图或视频

No response

提供解决方案

或许可以通过区分android 10 android7来写 android10 要求使用SAF模式来搞。能搞 但是太麻烦了。

getActivity commented 4 months ago

小伙子,从你的描述中,我无法得知这个问题和 XXPermissions 有什么关联。

a120476536 commented 4 months ago

小伙子,从你的描述中,我无法得知这个问题和 XXPermissions 有什么关联。

这个问题 属实比较尴尬 ,之前用的 都是市场上常见机型申请权限贼6 ,这个定制机版本10 ,正常android:requestLegacyExternalStorage="true"开了 读写权限都申请了,竟然不行,当时我都蒙了。

getActivity commented 3 months ago

@a120476536 小伙子,你要搞清楚这个问题是权限的问题,还是某个特殊机型的问题,如果某个特殊机型会这样,你只能反馈给手机厂商做处理了。