Android权限处理的Dexter库总是在PermissionDenied上触发回调
我试图使用名为Dexter的库处理Android版本23中的新权限模型: 问题是,如果我需要检查对系统\u警报\u窗口的权限访问,则始终会在不显示权限对话框的情况下调用回调onPermissionDeniedAndroid权限处理的Dexter库总是在PermissionDenied上触发回调,android,permissions,Android,Permissions,我试图使用名为Dexter的库处理Android版本23中的新权限模型: 问题是,如果我需要检查对系统\u警报\u窗口的权限访问,则始终会在不显示权限对话框的情况下调用回调onPermissionDenied PermissionListener dialogPermissionListener = new PermissionListener() { @Override public void onPermissionGranted(PermissionGra
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);
如何以正确的方式进行权限检查
注意:权限检查在服务中处理,而不是在活动中处理,因为服务应该在应用程序中的所有其他窗口上方显示系统警报窗口(已授予权限)
非常感谢你的建议 您还应该在AndroidManifest.xml中添加权限您还应该在AndroidManifest.xml中添加权限 Android认为权限系统警报窗口和写入设置是特殊的。德克斯特不会处理这些问题,你需要以老式的方式请求它们 [已经在lib本身中提到过][1] Android认为权限系统警报窗口和写入设置是特殊的。德克斯特不会处理这些问题,你需要以老式的方式请求它们 [已经在lib本身中提到过][1]
您是否尝试将
checkPermission
方法更改为checkpermissionsamethread
?我怀疑您正在另一个线程中接收回调,因为您正在使用服务。此外,这可能很有用:您是否尝试将checkPermission
方法更改为checkpermissionsamethread
?我怀疑您正在另一个线程中接收回调,因为您正在使用服务。此外,这可能很有用: