因为android 6.0以上出于用户安全考虑,大部分涉及硬件环境的权限需要动态获取。

简单讲述获取多条动态权限并设置监听:

/** * Created by Administrator on 2019/1/21. */public class Premissions {    public static int permissioncpde=1;//标识    public static String[] per=new String[]{Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE,            Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.CALL_PHONE};    public static void showTakePermission(Activity activity, Context context) {//        判断手机版本,如果低于6.0 则不用申请权限,直接拍照        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//7.0及以上            ActivityCompat.requestPermissions(activity,per, permissioncpde);//获取多条权限        }else{        }    }    //判断是否有指定权限    public static boolean isPermission(Activity activity, Context context,String perValue) {//        判断手机版本,如果低于6.0 则不用申请权限,直接拍照        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//7.0及以上            if((ContextCompat.checkSelfPermission(context, perValue) != PackageManager.PERMISSION_GRANTED)) {                return false;            }else {                return true;            }        }else{            return true;        }    }}

通过activity的onRequestPermissionsResult 监听权限是否通过

@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {   super.onRequestPermissionsResult(requestCode, permissions, grantResults);   if(requestCode==1){      for (int i = 0; i < permissions.length; i++) {         if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {            if (i == 0){            }         } else {            Toast.makeText(MainActivity.this, "" + "权限" + permissions[i] + "申请失败", Toast.LENGTH_SHORT).show();         }      }   }}

在activity 中调用 

//动态获取权限Premissions.showTakePermission(this,this);

需要注意在

AndroidManifest 中任然要写权限  否则部分手机会报错

更多相关文章

  1. [置顶] error opening trace file: No such file or directory (
  2. [android] android下文件访问的权限
  3. Android(安卓)WiFi扫描
  4. android gridview点击子选项动态改变item背景颜色
  5. android.os.Build的一些使用方法
  6. android 播放网络或本地gif格式的动态图片
  7. Android(安卓)Studio 升级和新版本下载
  8. android IO操作
  9. Android(安卓)Weekly Notes Issue #239

随机推荐

  1. SQLSERVER中得到执行计划的两种方式
  2. sqlserver中关于WINDOWS性能计数器的介绍
  3. SQL 实现某时间段的统计业务
  4. SQL Server 日期函数CAST 和 CONVERT 以
  5. SQLserver中用convert函数转换日期格式的
  6. MS SQL Server获取十二个月份的英文缩写
  7. Sql Server 分组统计并合计总数及WITH RO
  8. SQL Server误区30日谈 第30天 有关备份的
  9. SQL Server误区30日谈 第29天 有关堆碎片
  10. SQL Server误区30日谈 第28天 有关大容量