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優雅地申請動態許可權Android
- 原生Android之(6.0及以上)許可權申請Android
- android 6.0許可權機制的簡單封裝(支援批量申請許可權)Android封裝
- android 6.0許可權申請機制(簡單案例)Android
- delphi安卓動態許可權申請安卓
- iOS相關許可權檢測和申請iOS
- Android元件化開發實戰:封裝許可權管理請求框架Android元件化封裝框架
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- Delphi 7 編譯軟體申請管理員許可權編譯
- 【FAQ】申請Health Kit許可權的常見問題及解答
- Android 6.0 在執行時請求許可權Android
- Android SELinux許可權AndroidLinux
- Android 通知許可權Android
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- Android 採用AOP方式封裝6.0許可權管理Android封裝
- android動態許可權到自定義許可權框架Android框架
- android 許可權庫EasyPermissionsAndroid
- Android 中的危險許可權Android
- 這個許可權動態申請庫,值得嘗試一下
- EasyAndroid基礎整合元件庫之:EasyPermissions 動態許可權申請庫Android元件
- 小知識:軟體開發的許可權控制和許可權驗證
- android 許可權元件設計Android元件
- EDP .Net開發框架--許可權框架
- 鴻蒙Next許可權申請全攻略:系統授權與使用者授權之道鴻蒙
- 探索Android Q上的位置許可權Android
- 這也許是Android一句話許可權適配的更優解決方案Android
- Android動態請求許可權的工具類(轉載、非原創)Android
- Android動態許可權總結Android
- Android許可權處理分類Android
- Android property屬性許可權新增Android
- Speed框架許可權管理開發當中遇到的問題和處理方式框架
- 基於tp3.2.3開發的許可權管理系統,路由,微信,cdn,許可權路由
- 許可權之選單許可權
- linux 檔案許可權 s 許可權和 t 許可權解析Linux