有的時候我們在AndroidManifest.xml 中明明已經設置了某個權限,比如:
<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>
但是可能仍會出現異常:java.lang.SecurityException (異常類型可以百度)Neither user 10155 nor current process has android.permission.ACCESS_COARSE_LOCATION 這樣的錯誤,其中10155是android的系統UID,所以如果你沒有系統的UID 使用Platform的APK簽名即使配置的了權限,仍然沒有權限使用相關方法的。情況類似於android手機的USB調試,有些手機,即使你打開了USB調試仍然會提示你是否進行連接,如果你選擇了否,連接仍會失敗。
基於此種情況,本身就是獲取某種敏感權限時才會發生,所以如果應用對於此種權限依賴不高,可作異常捕捉處理:
1、直接在使用此種權限的地方捕捉異常,(是在直接調用系統方法的地方加try,在外層添加仍會報錯)。
2、提高應用啟動的進程權限:android:sharedUserId="android.uid.system" (網絡資料,沒有測試)。