我試圖處理在Android版本使用稱爲德克斯特庫23新的權限模型:德克斯特庫的Android權限總是處理總是觸發回調onPermissionDenied
https://github.com/Karumi/Dexter
問題是,如果我需要檢查允許訪問SYSTEM_ALERT_WINDOW回調onPermissionDenied總是被調用而不顯示權限對話框。
PermissionListener dialogPermissionListener = new PermissionListener() {
@Override public void onPermissionGranted(PermissionGrantedResponse response) {
Logger.d("onPermissionGranted");
}
@Override public void onPermissionDenied(PermissionDeniedResponse response) {
Logger.d("onPermissionDenied");
}
@Override public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {
Logger.d("onPermissionRationaleShouldBeShown");
}
};
Dexter.checkPermission(dialogPermissionListener, Manifest.permission.SYSTEM_ALERT_WINDOW);
如何以正確的方式進行權限檢查?
注意:權限檢查是在服務中處理的,而不是在Activity中,因爲服務應該在應用中的所有其他窗口上方顯示SYSTEM_ALERT_WINDOW(授予權限)。
非常感謝您的任何建議。
你試圖改變'checkPermission'方法'checkPermissionOnSameThread' [早在lib本身這裏提到]由於您使用的是服務,我懷疑您是在其他線程中接收回調。 此外,這可能是有用的:http://stackoverflow.com/questions/32292675/how-to-request-permissions-from-a-service-in-android-marshmallow –