2013-08-01 13 views
6

Quindi con l'arrivo di Android 4.3 arriva la possibilità di selezionare selettivamente disable particular permissions for apps.Posso rilevare che è stata rimossa una particolare autorizzazione per la mia app Android?

Ciò potrebbe ovviamente causare problemi in cui un'app perde un'autorizzazione necessaria per funzionare correttamente.

Il sistema trasmette un messaggio quando viene revocata un'autorizzazione oppure come posso dire che la mia app non ha più una determinata autorizzazione? Idealmente, vorrei informare l'utente che la disattivazione dell'autorizzazione A interromperà xyz nell'applicazione.

+1

È stato nascosto per questo motivo, fino a quando non escono con un meccanismo per gli sviluppatori di adattarsi per questo. –

risposta

2

Non c'è trasmissione, ma è possibile verificare le autorizzazioni da soli all'avvio (o riprendere, ecc.). Context#checkCallingOrSelfPermission() è fornito per questo.

Se si desidera controllare tutte le autorizzazioni, si potrebbe fare qualcosa di simile:

public static boolean[] getPermissionsGranted(Context context, String[] permissions){ 
    boolean[] permissionsGranted = new boolean[permissions.length]; 
    for(int i=0;i<permissions.length;i++){ 
     int check = context.checkCallingOrSelfPermission(permissions[i]); 
     permissionsGranted[i] = (check == PackageManager.PERMISSION_GRANTED); 
    } 
    return permissionsGranted; 
} 

cui le stringhe di input sono i nomi delle autorizzazioni, come ad esempio "android.permission.INTERNET".

Problemi correlati