怎么在Android中判断某个权限是否开启

  介绍

这期内容当中小编将会给大家带来有关怎么在Android中判断某个权限是否开启,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<>强如下所示:

/* *   ,*读写权限,自己可以添加需要判断的权限   ,*/public  static  String [] permissionsREAD={   ,,,Manifest.permission.READ_EXTERNAL_STORAGE,   ,,,Manifest.permission.WRITE_EXTERNAL_STORAGE }; /* *   ,*判断权限集合   ,* permissions 权限数组   真的,* return 表示没有改权限,错:表示权限已开启   ,*/public  static  boolean  lacksPermissions (Context  mContexts permissionsREAD), {   for 才能;(String  permission :权限),{   ,,,if  (lacksPermission (mContexts、许可),{   ,,,,,return 真实;   ,,,}   ,,}   return 才能;假;   }/* *   ,*判断是否缺少权限   ,*/private  static  boolean  lacksPermission (Context  mContexts, String 许可),{   return 才能ContextCompat.checkSelfPermission (mContexts,许可),==,,,,,PackageManager.PERMISSION_DENIED;   }

<强>//活动使用

if  (lacksPermissions()){//读写权限没开启   ActivityCompat.requestPermissions才能(permissionsREAD, 0);   }else  {//读才能写权限已开启   }

<强>//权限设置回调

@Override   public  void  onRequestPermissionsResult (int  requestCode, @NonNull  String[],权限,@NonNull  int [], grantResults), {   super.onRequestPermissionsResult才能(requestCode,权限,grantResults);   if 才能;(requestCode==0) {   ,,,for  (int 小姐:=,0;,小姐:& lt;, permissions.length;,我+ +),{   ,,,,,if  (grantResults[我]!=1){   ,,,,,,,//T.showShort (mContext,“权限设置成功“);   ,,,,,,,   ,,,,,}else  {   ,,,,,,,//T.showShort (mContext,“拒绝权限“);   ,,,,,,,//,权限被拒绝,弹出dialog 提示去开启权限   ,,,,,,,showPermissions ();   ,,,,,,,休息;   ,,,,,}   ,,,}      ,,}   }
//弹出对话框
private  void  showPermissions () {   final 才能;Dialog 对话框=new  android.app.AlertDialog.Builder (mContext)共创();   View 才能;v=LayoutInflater.from (mContext) .inflate (R.layout.dialog_permissions, null);   dialog.show才能();   dialog.setContentView才能(v);      Button 才能;btn_add=,(按钮),v.findViewById (R.id.btn_add);   Button 才能;btn_diss=,(按钮),v.findViewById (R.id.btn_diss);      btn_add.setOnClickListener才能(new  View.OnClickListener (), {   ,,@Override   ,,,public  void  onClick (View 视图),{   ,,,,,dialog.dismiss ();   ,,,,,Intent  Intent =, new 意图();   ,,,,,intent.setAction (Settings.ACTION_APPLICATION_DETAILS_SETTINGS);   ,,,,,intent.addCategory (Intent.CATEGORY_DEFAULT);   ,,,,,intent.setData (Uri.parse(“包:“,+,getPackageName ()));   ,,,,,intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);   ,,,,,intent.addFlags (Intent.FLAG_ACTIVITY_NO_HISTORY);   ,,,,,intent.addFlags (Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);   ,,,,,startActivity(意图);   ,,,}   ,,});      btn_diss.setOnClickListener才能(new  View.OnClickListener (), {   ,,@Override   ,,,public  void  onClick (View 视图),{   ,,,,,dialog.dismiss ();   ,,,}   ,,});   }

<强>//对话框布局

& lt; ? xml  version=?.0“,编码=皍tf-8" ?比;   & lt; LinearLayout  xmlns: android=癶ttp://schemas.android.com/apk/res/android"   android:才能layout_width=?50 dp"   android:才能layout_height=皐rap_content"   android:才能layout_gravity=癱enter"   android:才能背景=癅color/white"   android:才能取向=皏ertical",在      & lt; TextView才能   ,,,android: id=癅 + id/tv_title"   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在Android中判断某个权限是否开启