根据需要,对于面向 Android 13+ 的应用,我对媒体文件使用以下权限请求:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
我遇到的问题是,此权限似乎不足以访问存储中保存的其他类型的文件,例如 pdf、贴纸等。
当我想访问此类文件时,由于缺乏适当的权限,它将通过 FileNotFoundException
进行访问。
例如:
File file = new File(<path_to_File>);
FileInputStream fileInputStream = new FileInputStream(file); // Here it will through the exception
对于其他类型的文件,它工作得很好。
有什么解决办法吗?
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
最佳答案
解决方案是使用 SAF 和例如 ACTION_OPEN_DOCUMENT 让用户选择文件。
根本不需要任何权限。
关于java - Android 13 - 访问 PDF 或其他类型文件的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76581641/