1. 程式人生 > >Android6.0執行時許可權,拒絕了許可權還返回獲取成功

Android6.0執行時許可權,拒絕了許可權還返回獲取成功

如題:禁用、詢問的許可權,居然還返回許可權獲取成功
推薦一個很好的專案:AndPermission
不用回來感謝了喂!

這個問題在專案中,一直存在,
主要是第三方廠商各種改,返回的狀態不正常;
主要解決思路:
在第三方成功獲取許可權時,
再用系統原生的api去判斷一下,是否真正獲取了許可權:

 /**
     * 系統層的許可權判斷
     *
     * @param context     上下文
     * @param permissions 申請的許可權 Manifest.permission.READ_CONTACTS
     * @return 是否有許可權 :其中有一個獲取不了就是失敗了
     */
public static boolean hasPermission(@NonNull Context context, @NonNull List<String> permissions) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return true; for (String permission : permissions) { String op = AppOpsManagerCompat.permissionToOp(permission); if
(TextUtils.isEmpty(op)) continue; int result = AppOpsManagerCompat.noteProxyOp(context, op, context.getPackageName()); if (result == AppOpsManagerCompat.MODE_IGNORED) return false; result = ContextCompat.checkSelfPermission(context, permission); if (result != PackageManager.PERMISSION_GRANTED) return
false; } return true; }