Android PermissionsDispatcher - 请求多权限,不生成方法

Android PermissionsDispatcher - Ask for multi permissions, does not generate methods

我正在尝试向用户 PermissionsDispatcher 请求多重权限,适用于请求权限,但不生成方法回调。

已经有人用过了?

项目和环境信息:

gradle.

//Permissions
compile 'com.github.hotchemi:permissionsdispatcher:2.3.2'
annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:2.3.2'

多重权限请求无效。 (不生成拒绝且不再询问流程。

@NeedsPermission( {Manifest.permission.READ_CONTACTS,
      Manifest.permission.CAMERA,
      Manifest.permission.ACCESS_FINE_LOCATION,
      Manifest.permission.READ_PHONE_STATE,
      Manifest.permission.WRITE_EXTERNAL_STORAGE})
void canGo() {
    //Permissions ok, go to next flow step.
}

如果我更改为唯一权限工作正常并生成拒绝并且不再询问流程。

@NeedsPermission(Manifest.permission.READ_CONTACTS)
void canGo() {
     //Permissions ok, go to next flow step.
}

提前致谢!

经过几个小时的尝试解决它,我已经弄清楚了库如何工作以请求多权限。根据官方repor issue-57.

@OnPermissionDenied is called when request of @NeedsPermission which has same string array as arguments is denied.

如果我们有下面的方法

@NeedsPermission( {Manifest.permission.READ_CONTACTS,
      Manifest.permission.CAMERA,
      Manifest.permission.ACCESS_FINE_LOCATION,
      Manifest.permission.READ_PHONE_STATE,
      Manifest.permission.WRITE_EXTERNAL_STORAGE})
void canGo() {
    //Permissions ok, go to next flow step.
}

所以,我们还需要:

@OnPermissionDenied( {Manifest.permission.READ_CONTACTS,
      Manifest.permission.CAMERA,
      Manifest.permission.ACCESS_FINE_LOCATION,
      Manifest.permission.READ_PHONE_STATE,
      Manifest.permission.WRITE_EXTERNAL_STORAGE})
void deniedPermissionsFlow() {
    //Permissionsdenied, block next flow step.
}