在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"/>

更多相关文章

  1. 当sd卡不存在时,保存文件到手机上
  2. Android向node.js编写的服务器发送数据并接收请求
  3. 运行时权限方案:PermissionX
  4. Android获取定位权限,获取设备所在的经纬度
  5. Android(安卓)RIL源码研究笔记 の ril (一)
  6. Android(安卓)Json数据转实体类一键转化工具GsonFormat
  7. Okhttp post 发送空的body
  8. 隐私策略更新 | Android(安卓)11 应用兼容性适配
  9. System Permissions --1.4

随机推荐

  1. Android(安卓)联系人 数据库解析
  2. Android中获取TextView一行最多能显示几
  3. Android(安卓)P: U盘挂载过程简述
  4. Activity生命周期和对话框
  5. 《第一行代码》阅读笔记(三十四)——Materi
  6. Android(安卓)通过Intent简单实现分享功
  7. opengl fbo 离屏渲染
  8. Android(安卓)发布release版本的apk软件
  9. Android应用资源全面分析之三:Drawable资
  10. 预习数据存储5种方式