需要在AndroidManifest文件中配置权限。(必须)

 
  • 首先判断当前sdk是否大于6.0,是则判断是否已经开启了权限,否则直接执行代码doCode()
  • 判断是否已经开启权限,如果还没有权限,则执行requestPermissions();
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){                    if (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){                        //没有权限则申请权限                        ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);                    }else {                        //有权限直接执行,docode()不用做处理                        doCode();                     }                }else {                    //小于6.0,不用申请权限,直接执行                    doCode();                }

在活动中调用函数onRequestPermissionsResult()

@Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        switch (requestCode){            case 1:                if (grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION_GRANTED){                    //执行代码,这里是已经申请权限成功了,可以不用做处理                    doCode();                 }else{                    ToastUtil.showShort(MainActivity.this,"权限申请失败");                }                break;        }    }

fragment中这样使用回调方法才生效:

HomeFragment.this.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},        1);

 

更多相关文章

  1. 录音权限(Android(安卓)8.0)
  2. Android(安卓)启动分析-init进程&init.rc[转]
  3. Android系统初始化过程分析(Android(安卓)4.3)
  4. Android(安卓)在JNI中执行Java方法--C/C++调用Java
  5. Android_MediaPlayer:java.io.IOException: setDataSource failed
  6. Android(安卓)app接收来自adb发送的广播的实例学习
  7. Android定制之Ubuntu下常见问题及解决
  8. android 中如何在androidmanifest.xml设置权限请求
  9. android下的异步任务

随机推荐

  1. android不死服务的实现方法
  2. EditText失去焦点隐藏软键盘
  3. android弹出输入法时的模式
  4. Android通过HttpURLConnection上传多个文
  5. Android之手机振动的设置
  6. Android源代码下载过程及遇到的问题
  7. android 8.0 通知适配
  8. Error Installing APK
  9. 一个java android 时钟 非常精致!android
  10. android adb 控制手机