Android M Preview docs ci mostra come verificare e richiedere autorizzazioni con il nuovo modello di autorizzazioni. Nel grafico sottostante che ci mostra un gruppo di gruppi di autorizzazioni e le relative autorizzazioni associate.Autorizzazioni di richiesta di Android M con permission_groups
Quando provo ad ad checkSelfPermission
con un permission_group
(cioè Manifest.permission_group.CAMERA
) al primo avvio, prevedibilmente ottengo PackageManager.PERMISSION_DENIED
.
Quindi provare a requestPermissions
per quello stesso permission_group
e non viene visualizzato alcun tipo di finestra di dialogo. 'onRequestPermissionsResult' restituisce immediatamente con -1
.
Quando provo la stessa sequenza con Manifest.permission.Camera
- le cose sembrano funzionare normalmente. Ma per una semplice app che sto facendo, ho bisogno di registrare video con audio, e la richiesta delle due autorizzazioni separate, CAMERA
e (alias RECORD_AUDIO
) sembra un design scadente.
La domanda: E 'checkSelfPermission
e requestPermission
suppone di lavorare con Manifest.permission.*
e Manifest.permission_group.*
ma c'è un bug che avrei dovuto presentare dal momento che non mostrerà richiesta? O era questo disegno intenzionale?
* Nota - Mi rendo conto che posso creare un array requestPermissions(String[], int)
stringa con più autorizzazioni a me stesso, ma id hanno ancora un sacco di if
dichiarazioni di controllare le combinazioni di permessi ho bisogno e di chiedere loro come un gruppo, quando ho dovrebbe solo bisogno di richiedere un permission_group
non era a conoscenza della stratificazione di checkSelf in cima ai vecchi metodi API, questo è bello sapere. potrei semplicemente provare a creare un'utilità di supporto che permetta alle persone di passare in permessi_gruppi e vedere se ha senso per me, e potenzialmente altri :) grazie per la risposta cw – trippedout
ma poi, qual è l'uso noto di 'Manifest.permission_group. class'? –
@HendraAnggrian: Ad esempio, è possibile utilizzarlo con ['getPermissionGroupInfo()' su 'PackageManager'] (https://developer.android.com/reference/android/content/pm/PackageManager.html#getPermissionGroupInfo (java. lang.String,% 20int)). – CommonsWare