我尝试使用名为Dexter的库来处理Android版本23中的新权限模型:
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(授予权限)。
非常感谢任何建议。
答案 0 :(得分:2)
您还应该在AndroidManifest.xml中添加权限
答案 1 :(得分:1)
权限SYSTEM_ALERT_WINDOW和WRITE_SETTINGS被Android认为是特殊的。 Dexter不处理这些问题,你需要以老式的方式提出要求。
[已经在lib本身中提到过] [1] https://github.com/Karumi/Dexter#caveats