Dexter Library for Android权限处理始终始终触发onPermissionDenied回调

时间:2016-07-10 19:13:42

标签: android permissions

我尝试使用名为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(授予权限)。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:2)

您还应该在AndroidManifest.xml中添加权限

答案 1 :(得分:1)

  

权限SYSTEM_ALERT_WINDOW和WRITE_SETTINGS被Android认为是特殊的。 Dexter不处理这些问题,你需要以老式的方式提出要求。

[已经在lib本身中提到过] [1] https://github.com/Karumi/Dexter#caveats