Android關於獲取使用者是否允許某項許可權
Android6.0以上檢查許可權方式
if(android.os.Build.VERSION.SDK_INT >= 23) {
if(context.getApplicationContext().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION)==PackageManager.PERMISSION_GRANTED &&context.getApplicationContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)==PackageManager.PERMISSION_GRANTED ){
isHave=true;
}else{
isHave=false;
}
// for(String permission:permissions){
// isHave=(PackageManager.PERMISSION_GRANTED == context.getApplicationContext().checkSelfPermission(permission));
// if(isHave==false){
// break;
// }
// }
}
坑點:有時候發現不管怎麼檢測,不管使用者是允許還是拒絕,檢查的結果始終是允許
解決方法:檢查你的工程的編譯版本:<uses-sdk android:targetSdkVersion="23"/>,是否是23及以上,如果編譯版本小於23或者不寫,使用以上檢查方法永遠都是使用者允許
Android 6.0一下檢查使用者是否允許某項許可權
/**
* 檢查許可權列表
* @param op
* 這個值被hide了,去AppOpsManager類原始碼找,如位置許可權 AppOpsManager.OP_GPS==2
* 0是網路定位許可權,1是gps定位許可權,2是所有定位許可權
* 返回值:0代表有許可權,1代表拒絕許可權 ,3代表詢問是否有 ,-1代表出錯
*/
public static int checkOp(Context context, int op) {
final int version = Build.VERSION.SDK_INT;
if (version >= 19) {
Object object = context.getSystemService("appops");
Class c = object.getClass();
try {
Class[] cArg = new Class[3];
cArg[0] = int.class;
cArg[1] = int.class;
cArg[2] = String.class;
Method lMethod = c.getDeclaredMethod("checkOp", cArg);
return (Integer) lMethod.invoke(object, op, Binder.getCallingUid(), context.getPackageName());
} catch (Exception e) {
e.printStackTrace();
}
}
return -1;
}
跟系統廠商有關:親測小米可以判斷
相關文章
- Android破取某漫畫app獲得VIP許可權AndroidAPP
- 如何檢查某個使用者是否具有某個許可權物件上定義的某種許可權物件
- Oracle 使用者許可權獲取ProcedureOracle
- Android手機獲取Root許可權Android
- 如何檢查某使用者是否分配了某ABAP許可權物件物件
- 連線使用者獲取許可權資訊
- Mac osx下獲取root使用者許可權Mac
- 關於動態許可權
- 【轉】關於MySQL許可權MySql
- 關於mysql許可權管理MySql
- mongodb關於使用者許可權的總結MongoDB
- Android系統許可權和root許可權Android
- PostgreSQL物件許可權如何在後設資料中獲取-許可權解讀、定製化匯出許可權SQL物件
- 獲取使用者許可權列表(RSSB_GET_AUTH_FOR_USER)
- win10管理員許可權怎麼獲取 win10管理員許可權獲取的方法Win10
- 關於 Laravel 日誌許可權Laravel
- Oracle 使用者、物件許可權、系統許可權Oracle物件
- mysql 修改使用者許可權,允許遠端連線資料庫MySql資料庫
- [PolicyException: 無法獲取所需的許可權。]Exception
- 關於使用者 email 郵件地址是否允許有加號的問題AI
- Mac OS X 下獲取root使用者許可權圖解Mac圖解
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- 關於Mac系統如何獲取最好許可權刪除頑固檔案?Mac
- 使用者許可權繼承另一使用者的許可權繼承
- win10管理員許可權如何獲取 win10怎樣讓當前使用者獲得管理員許可權Win10
- postgresql關於許可權的總結SQL
- android動態許可權到自定義許可權框架Android框架
- Win8.1許可權獲取設定教程
- Win8.1許可權獲取設定技巧
- android許可權大全Android
- Android permission許可權Android
- .NET 程式許可權控制、獲得管理員許可權程式碼
- win10如何獲得trustedinstaller許可權_win10獲取trustedinstaller許可權方法Win10Rust
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- Android應用程式獲得root許可權Android
- win10如何獲取檔案訪問許可權_win10怎麼獲取許可權看資料夾Win10訪問許可權
- 2 Day DBA-管理Oracle例項-關於管理帳戶和許可權-SYSDBA和SYSOPER系統許可權Oracle
- Android許可權管理之Permission許可權機制及使用Android