您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么在Android中判斷某個權限是否開啟,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
如下所示:
/** * 讀寫權限 自己可以添加需要判斷的權限 */ public static String[]permissionsREAD={ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE };
/** * 判斷權限集合 * permissions 權限數組 * return true-表示沒有改權限 false-表示權限已開啟 */ public static boolean lacksPermissions(Context mContexts,permissionsREAD) { for (String permission : permissions) { if (lacksPermission(mContexts,permission)) { return true; } } return false; } /** * 判斷是否缺少權限 */ private static boolean lacksPermission(Context mContexts, String permission) { return ContextCompat.checkSelfPermission(mContexts, permission) == PackageManager.PERMISSION_DENIED; }
//Activity使用
if (lacksPermissions()){//讀寫權限沒開啟 ActivityCompat.requestPermissions(this,permissionsREAD,0); }else { //讀寫權限已開啟 }
//權限設置回調
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode==0){ for (int i = 0; i < permissions.length; i++) { if (grantResults[i]!=-1){ //T.showShort(mContext,"權限設置成功"); }else { //T.showShort(mContext,"拒絕權限"); // 權限被拒絕,彈出dialog 提示去開啟權限 showPermissions(); break; } } } }
//彈出dialog
private void showPermissions(){ final Dialog dialog=new android.app.AlertDialog.Builder(mContext).create(); View v=LayoutInflater.from(mContext).inflate(R.layout.dialog_permissions,null); dialog.show(); dialog.setContentView(v); Button btn_add= (Button) v.findViewById(R.id.btn_add); Button btn_diss= (Button) v.findViewById(R.id.btn_diss); btn_add.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog.dismiss(); Intent intent = new Intent(); intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.setData(Uri.parse("package:" + getPackageName())); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); startActivity(intent); } }); btn_diss.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog.dismiss(); } }); }
//dialog布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="250dp" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@color/white" android:orientation="vertical" > <TextView android:id="@+id/tv_title" android:layout_width="match_parent" android:layout_height="40dp" android:layout_gravity="center_vertical" android:gravity="center" android:text="提示" android:background="@color/zhuti_color" android:textColor="@color/white" android:textSize="16sp" /> <TextView android:id="@+id/tv_hint" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@color/zhuti_color" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:textSize="16sp" android:gravity="center" android:lineSpacingExtra="3dp" android:text="需要手動開啟權限才能使用"/> <TextView android:id="@+id/tv_hint2" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@color/zhuti_color" android:layout_margin="10dp" android:textSize="12sp" android:gravity="center" android:visibility="gone" android:lineSpacingExtra="3dp" android:text=""/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="15dp" android:gravity="center" android:orientation="horizontal"> <Button android:id="@+id/btn_diss" android:layout_width="0dp" android:layout_weight="1" android:layout_height="30dp" android:background="@color/line2" android:text="取消" /> <Button android:id="@+id/btn_add" android:layout_width="0dp" android:layout_weight="1" android:layout_height="30dp" android:layout_gravity="center" android:background="@color/zhuti_color" android:text="去設置" android:layout_marginLeft="20dp" android:textColor="@color/white" /> </LinearLayout> </LinearLayout>
Android是一種基于Linux內核的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。
上述就是小編為大家分享的怎么在Android中判斷某個權限是否開啟了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。