赞
踩
这两天在开发一个android app,用途是从手机里读写txt文件。
读的时候一直报错:open failed: EACCES (Permission denied)
所以就在想哪里出了问题,各种查找,先在manifest添加:
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
后来在manifest的application里添加:
- <application
- android:requestLegacyExternalStorage="true"
后来在activity里添加权限许可:
- if (Build.VERSION.SDK_INT > 22) {
- List<String> permissionList = new ArrayList<>();
-
- // 检查权限
- if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
- permissionList.add(Manifest.permission.READ_EXTERNAL_STORAGE);
- }
-
- // 检查其他权限并将其添加到permissionList中
-
- if (!permissionList.isEmpty()) {
- // 请求权限
- String[] permissions = permissionList.toArray(new String[0]);
- ActivityCompat.requestPermissions(this, permissions, 1);
- } else {
- // 权限已经被授予,可以开始
- //do something;
- }
- }
这个代码是添加读的权限许可,如有其他权限可以继续添加。
这样的话点开app,就会提示是否允许X权限了,点击允许就可以啦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。