最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android權限詢問的實例詳解

 更新時間:2022年09月30日 15:31:58   作者:陳浩南的楠  
這篇文章主要介紹了Android權限詢問,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

AndroidMaifest.xml中聲明權限

<!-- 聲明所有需要的權限(包括普通權限和危險權限) -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>

直接上代碼,放在想要攔截的地方即可 ,一般是程序啟動時即訪問

private static final int MY_PERMISSION_REQUEST_CODE = 10000;

//第 1 步: 檢查是否有相應的權限,
boolean isAllGranted = checkPermissionAllGranted(
    new String[] {
        //根據(jù)自己需求,進行添加相應的權限
        Manifest.permission.READ_EXTERNAL_STORAGE,
        Manifest.permission.WRITE_EXTERNAL_STORAGE
    }
);
// 如果權限全都擁有, 則直接初始化日志文件
if (isAllGranted) {
    configureLog4J.configure();//有權限之后要做的事情
    return;
}

//第 2 步: 請求權限
// 一次請求多個權限, 如果其他有權限是已經(jīng)授予的將會自動忽略掉
ActivityCompat.requestPermissions(
    this,
    new String[] {
        Manifest.permission.READ_EXTERNAL_STORAGE,
        Manifest.permission.WRITE_EXTERNAL_STORAGE
    },
    MY_PERMISSION_REQUEST_CODE
);

//檢查是否擁有指定的所有權限
private boolean checkPermissionAllGranted(String[] permissions) {
    for (String permission : permissions) {
        if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
            // 只要有一個權限沒有被授予, 則直接返回 false
            return false;
        }
    }
    return true;
}


//第 3 步: 申請權限結果返回處理
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == MY_PERMISSION_REQUEST_CODE) {
        boolean isAllGranted = true;

        // 判斷是否所有的權限都已經(jīng)授予了
        for (int grant : grantResults) {
            if (grant != PackageManager.PERMISSION_GRANTED) {
                isAllGranted = false;
                break;
            }
        }

        if (isAllGranted) {
            // 如果所有的權限都授予了, 則初始化日志文件
            configureLog4J.configure();//有權限之后要做的事情

        } else {
            // 彈出對話框告訴用戶需要權限的原因, 并引導用戶去應用權限管理中手動打開權限按鈕
            openAppDetails();
        }
    }
}
//打開 APP 的詳情設置
private void openAppDetails() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("該程序需要訪問 “外部存儲器”,請到 “應用信息 -> 權限” 中授予!");
    builder.setPositiveButton("去手動授權", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            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);
        }
    });
    builder.setNegativeButton("取消", null);
    builder.show();
}

到此這篇關于Android權限詢問的文章就介紹到這了,更多相關Android權限詢問內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

青河县| 西贡区| 博白县| 米泉市| 增城市| 综艺| 孟连| 伊金霍洛旗| 普洱| 胶州市| 巩留县| 班戈县| 临武县| 马龙县| 德钦县| 南和县| 营山县| 乐平市| 长顺县| 乐清市| 金秀| 灵寿县| 资兴市| 阿坝| 伊吾县| 青岛市| 青铜峡市| 仁化县| 莫力| 华阴市| 扬中市| 喜德县| 宁武县| 定陶县| 澄城县| 滨海县| 凌云县| 合作市| 合山市| 东台市| 鹤壁市|