Android開發-更”聰明”的申請許可權方式
在Android6.0以後,很多許可權需要動態申請,只有在使用者點同意後,我們才能使用對應API,因此,正確申請許可權就顯得很重要。
常用方式
通常我們使用這種方式來判斷許可權狀態:
private static boolean isGranted(final String permission) {
return Build.VERSION.SDK_INT < Build.VERSION_CODES.M
|| PackageManager.PERMISSION_GRANTED
== ContextCompat.checkSelfPermission(Utils.getApp(), permission);
}
但是用這種方式我們會碰到一個比較棘手的情況,當使用者同意了某個許可權後,然後使用者又在手機的系統設定的應用許可權中關閉了這個許可權,此時我們並不能正確獲取到正確的許可權狀態。
解決辦法
有可能Android團隊意識到了這個問題,所以他們釋出了一個新的許可權檢查類:android.support.v4.content.PermissionChecker;
用這個類進行許可權的檢查就會正確返回,所以我們把許可權校驗的方法修改如下:
import android.support.v4.content.PermissionChecker;
private static boolean isGranted(final String permission) {
return Build.VERSION.SDK_INT < Build.VERSION_CODES.M
|| PackageManager.PERMISSION_GRANTED
== PermissionChecker.checkCallingOrSelfPermission(Utils.getApp(), permission);
}
這樣就會解決手機設定與使用者授權不一致的問題。
本文原始地址,如有更多疑問,請參考我的其它Android相關部落格:我的部落格地址
相關文章
- Android6.0------許可權申請管理(單個許可權和多個許可權申請)Android
- android強制申請許可權Android
- 在Android上優雅的申請許可權Android
- Android開發在Activity外申請許可權呼叫相機開啟相簿Android
- android 6.0許可權機制的簡單封裝(支援批量申請許可權)Android封裝
- Android優雅地申請動態許可權Android
- 原生Android之(6.0及以上)許可權申請Android
- android 6.0許可權申請機制(簡單案例)Android
- delphi安卓動態許可權申請安卓
- React-Native之Android(6.0及以上)許可權申請ReactAndroid
- iOS相關許可權檢測和申請iOS
- 簡單幾行程式碼申請許可權行程
- Xamarin Android許可權請求Android
- 國產 Android 許可權申請最佳適配方案 —— permissions4mAndroid
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- 【FAQ】申請Health Kit許可權的常見問題及解答
- App開發許可權APP
- Android元件化開發實戰:封裝許可權管理請求框架Android元件化封裝框架
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- Android系統許可權和root許可權Android
- Android 6.0 在執行時請求許可權Android
- 這個許可權動態申請庫,值得嘗試一下
- 小知識:軟體開發的許可權控制和許可權驗證
- EDP .Net開發框架--許可權框架
- android許可權大全Android
- Android permission許可權Android
- android動態許可權到自定義許可權框架Android框架
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- Android 採用AOP方式封裝6.0許可權管理Android封裝
- 鴻蒙Next許可權申請全攻略:系統授權與使用者授權之道鴻蒙
- EasyAndroid基礎整合元件庫之:EasyPermissions 動態許可權申請庫Android元件
- Android許可權管理之Permission許可權機制及使用Android
- 程式請求管理員許可權
- 基於tp3.2.3開發的許可權管理系統,路由,微信,cdn,許可權路由
- android 許可權庫EasyPermissionsAndroid
- Android許可權適配Android
- Android安全—許可權模型Android模型
- Android系統許可權Android