1

我想要用戶PermissionsDispatcher要求多權限,適用於請求權限,但不生成方法回調。Android PermissionsDispatcher - 要求多權限,不生成方法

有人已經使用它了嗎?

項目與環境信息:

  • 的Android 2.3.1工作室
  • buildToolsVersion '25 .0.2'

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. 
} 

在此先感謝!

回答

0

經過幾個小時試圖解決它,我已經想出瞭如何工作以獲得多個權限。根據第57號官方報告。

@OnPermissionDenied被調用時,其@NeedsPermission具有 作爲參數被拒絕同一字符串數組的請求。

如果我們有以下方法。

@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. 
}