Unable to decode stream: java.io.FileNotFoundException: ****** (Permission denied) (android多组动态权限申请)
16lz
2021-01-26
在android6.0以上一些权限是属于Protected Permission的,仅仅在AndroidManifest.xml声明是无法获取 权限的,需要动态的申请,否则就会报出如下的错误
下面附上多组动态权限申请例子
public class MainActivity extends AppCompatActivity { private static final int PERMISSION_REQUEST = 1001; String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA,Manifest.permission.CALL_PHONE,Manifest.permission.READ_EXTERNAL_STORAGE}; List<String> permissionsList = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //请求权限 initPermissions(); } /** * 请求权限 */ private void initPermissions() { permissionsList.clear(); //判断哪些权限未授予 for(String permission : permissions){ if(ActivityCompat.checkSelfPermission(this,permission)!= PackageManager.PERMISSION_GRANTED){ permissionsList.add(permission); } } //请求权限 if(!permissionsList.isEmpty()){ String[] permissions = permissionsList.toArray(new String[permissionsList.size()]);//将List转为数组 ActivityCompat.requestPermissions(MainActivity.this, permissions, PERMISSION_REQUEST); } } /** * 权限回调, * @param requestCode * @param permissions * @param grantResults */ @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode){ case PERMISSION_REQUEST: break; default: break; } } }
记得添加配置清单权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.CALL_PHONE"/> <uses-permission android:name="android.permission.CAMERA"/>
更多相关文章
- 当sd卡不存在时,保存文件到手机上
- Android向node.js编写的服务器发送数据并接收请求
- 运行时权限方案:PermissionX
- Android获取定位权限,获取设备所在的经纬度
- Android(安卓)RIL源码研究笔记 の ril (一)
- Android(安卓)Json数据转实体类一键转化工具GsonFormat
- Okhttp post 发送空的body
- 隐私策略更新 | Android(安卓)11 应用兼容性适配
- System Permissions --1.4