1. 程式人生 > >android6.0 檢查許可權(相容小米)

android6.0 檢查許可權(相容小米)

事實上自android6.0以來,這個檢查許可權一直很讓人頭痛。

之所以提到讓人頭痛,是因為並不是所有廠商都按照規矩來,比如小米,無論是否拒絕:

ContextCompat.checkSelfPermission()

使用這個方法獲取的結果始終為通過。

最近找到了:
PermissionChecker.checkPermission(getContext().getApplicationContext(), 許可權名,android.os.Process.myPid(),android.os.Process.myUid(), getPackageName());
經測試,相容小米。

不用特地判斷6.0以上,這個方法會自己識別。而且有些手機沒到6.0系統也有許可權識別(紅米note2[自裝5.0.1]),有些到6.0沒有(Vivo Y67L),所以不要自己判斷6.0以上,讓這個方法判斷。如果是詢問狀態,這個方法也會盡量先詢問再判斷。個別情況可能因手機廠商該系統的原因詢問狀態時判斷為獲取許可權失敗,那就直接告訴使用者失敗,讓使用者自己設定吧。