Android 13+ Capacitor应用文件系统权限异常:无法保存PDF
Android 13+ 下 Capacitor Filesystem 权限异常:无法保存PDF文件
我需要在用户智能手机的文件系统中保存.pdf文件,按照Capacitor的Filesystem相关文档操作后,在Android 13及以上版本遇到了权限问题,该功能在Android 12上可正常运行。
已执行的操作
- 在
AndroidManifest.xml文件中添加权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- 编写权限检查代码:
getFilesystemAccess(): Promise<boolean> { return new Promise(async (resolve) => { const status = await Filesystem.checkPermissions() const state = status.publicStorage if (state === 'granted') { console.log('权限已授予 -> 执行文件保存') return resolve(true) } else if (state === 'denied') { console.log('权限已拒绝 -> 引导用户手动修改权限') if(await this._requestToEditSettings('ALLOW_FILESYSTEM_ACCESS')) NativeSettings.open({ optionAndroid: AndroidSettings.ApplicationDetails, optionIOS: IOSSettings.App, }) } else { Filesystem.requestPermissions() } return resolve(false) }) }
遇到的问题
- 即使用户从未拒绝过权限,
state仍显示为denied - 用户打开应用设置后,无法找到并启用文件系统访问权限
- 尝试添加Android 13细分媒体权限,问题未解决:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
补充:我知道可以通过Intent实现相关功能,但不清楚具体怎么写。有没有人遇到过相同问题并找到了解决方案?
内容的提问来源于stack exchange,提问作者Raphaël Balet
相关产品推荐
相关产品推荐

