android檢測訪問權限是否被拒

正常情況,權限被拒的情況下程序會拋出異常,但是在MIUI上并不會,試了各種辦法,最終用下面的代碼搞定了。

public void queryContacts(){
        Cursor cursor = null;
        try {
            cursor = getContentResolver().query(ContactsContract.Data.CONTENT_URI, null, null, null, null);
            CrossProcessCursorWrapper ac = (CrossProcessCursorWrapper) cursor;
            CursorWindow cw = ac.getWindow();
            Log.e("ts", "CursorWindow:" + cw);
            if (cw == null) {
                Toast.makeText(this, "通訊錄權限被關閉", Toast.LENGTH_SHORT).show();
            }
            while (cursor.moveToNext()) {
                String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                Log.i("ts", "number:" + number);
            }
        } catch (Exception e) {
            Log.e("ts", "queryContacts", e);
        } finally {
            if (cursor != null && !cursor.isClosed()) {
                cursor.close();
            }
        }
    }

這里以查詢通訊錄為例,其他權限也可以這樣處理

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容