1. 程式人生 > >[安卓開發基礎]許可權管理

[安卓開發基礎]許可權管理

public        void   checkselfPermisssion2(){

    if (ContextCompat.checkSelfPermission(this,
            Manifest.permission.READ_CONTACTS)
            != PackageManager.PERMISSION_GRANTED) {
        if (!ActivityCompat.shouldShowRequestPermissionRationale(this,
                Manifest.permission.READ_CONTACTS)) {
            //第一次全新進入時,shouldShowRequestPermissionRationale方法將返回false,這裡將會執行。
            //請求許可權時如果點了拒絕但是沒勾選不再提醒,shouldShowRequestPermissionRationale方法將返回true,這裡將不執行。
            //點了拒絕且勾選了不再提醒,再次進入時,shouldShowRequestPermissionRationale方法也將返回false,並且許可權請求將無任何響應,然後可以在下面方法中做些處理,提示使用者開啟許可權。
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.READ_CONTACTS},
                    1);//1 表示使用者唯一標識一個許可權請求以便回撥時進行判斷

            Log.i("permission","request");

        } else {
            Log.i("permission","request2");

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



        }
    }


}

注意:當你的應用呼叫requestPermissions()方法時,系統會向用戶展示一個標準對話方塊,你的應用不能修改也不能自定義這個對話方塊,如果你需要給使用者一些額外的資訊和解釋你就需要在呼叫requestPermissions()之前像上面一樣" 解釋為什麼應用需要這些許可權"