Andriod13 读写权限控制开启的方法
在Android13(targetSDK = 33)系统中,由于 WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE权限被废除,我们无法直接读取txt文件。
尽管新的权限如READ_MEDIA_VIDEO、READ_MEDIA_AUDIO和READ_MEDIA_IMAGES已被引入,但经过测试,这些权限依然无法成功读取本地的txt文件。
为了 解决存储访问问题,可以在AndroidManifest.xml中添加android.permission.MANAGE_EXTERNAL_STORAGE权限。以下是修改后的示例代码:
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
请注意,由于 MANAGE_EXTERNAL_STORAGE权限涉及敏感操作,因此在申请此权限时,需要谨慎处理并确保用户的隐私和安全得到充分保护。同时,请确保您的应用符合Android的隐私政策和最佳实践。
> 引导用户授予权限
在添加了相应的权限后,还需要在Activity中添加代码来 引导用户手动赋予此权限。一种可行的方案是,通过Intent跳转到系统文件访问页面,让用户在那里手动赋予所需的权限。以下是一个代码示例:
```java
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + this.getPackageName()));
startActivity(intent);
```
这段代码创建了一个Intent,其动作类型为Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION,表示要跳转到系统设置中的文件访问权限管理页面。通过setData方法指定了要操作的应用包名,即当前应用。 最终,调用startActivity方法启动这个Intent,引导用户进行手动权限赋予操作。
另一种类似的方案是通过跳转到系统外部存储设置页面,引导用户手动选择并赋予权限给应用。代码如下:
```java
Intent intent = new Intent(Settings.ACTION_MANAGE_EXTERNAL_STORAGE_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
```
这段代码同样通过创建一个Intent,旨在跳转到系统外部存储的设置页面,让用户进行手动选择并授予权限的操作。
原文网址:https://baijiahao.baidu.com/s?id=1832757351312473866&wfr=spider&for=pc
浙公网安备 33010602011771号