2013-07-26 7 views
5

Ho sentito che OS 4.3 ha una funzione nascosta per disabilitare alcune autorizzazioni senza l'APK di riconfezionamento. Quando rilasciamo l'app, aggiungiamo le autorizzazioni necessarie e facciamo in modo che l'app funzioni. Ma quella funzione può disabilitare le autorizzazioni. So che alcune app lo hanno fatto anche se è un trucco e non ho bisogno di preoccuparmi. Ma con OS 4.3, l'utente può facilmente farlo.Cosa succede quando l'autorizzazione è disabilitata con la nuova funzione di OS 4.3?

Ora la mia domanda è, quando l'autorizzazione è disabilitata, l'API corrispondente genera un'eccezione? (Suppongo di sì.) Se questo è vero, dovrei aggiungere try-catch per alcune operazioni altrimenti l'utente inesperto potrebbe finire per pensare che la mia app sia mal progettata.

Oppure, aggiungerò del codice per verificare che le autorizzazioni siano disponibili per la mia app e, in caso contrario, mostrerò un messaggio scortese, non educato da dire, non fare questo e chiudere l'app.

(Qualcuno potrebbe chiudere questo problema dicendo che questo non è un vero problema.)

+0

Oltre ad aggiungere 'uses-feature' e impostare' android: required = "false" 'dove necessario, non riesco a vedere da Android 4.3 doco come superare questo problema. Ti ricordo che ho appena iniziato a sperimentare con l'API 18 (Android 4.3). – ChuongPham

risposta

5

Ho sentito che OS 4.3 ha nascosto funzione per disabilitare alcune autorizzazioni w/o riconfezionamento APK.

Il termine di funzionamento per questo è "App Ops", basato sul titolo dell'attività che consente all'utente di controllare queste operazioni.

Ora la mia domanda è, quando l'autorizzazione è disabilitata, l'API corrispondente genera un'eccezione?

Ciò dipenderà dalla particolare operazione che è stata bloccata. Ad esempio, se provi a open() a Camera, quando questo è stato bloccato da App Ops, viene generato un valore RuntimeException. Ma interrogando i contatti, quando l'utente lo ha bloccato in App app, restituisce semplicemente i set di risultati vuoti.

devo aggiungere try-catch per alcune operazioni utente alle prime armi in caso contrario potrebbe finire per pensare la mia app è mal progettato

Forse. Dipende da ciò che la tua app può bloccare e qual è il comportamento di blocco.

Aggiungerò un po 'di codice per verificare che le autorizzazioni siano disponibili per la mia app e, in caso contrario, mostrerò un messaggio scortese, non educato da dire, non fare questo e chiudere l'app.

Le app di app non revocano le autorizzazioni. PackageManager e checkPermissions() segnaleranno comunque che si detiene l'autorizzazione, anche se le Operazioni App bloccano alcune operazioni legate a tale autorizzazione.

Allo stato attuale, non conosco alcun modo diretto per determinare se è stato bloccato da App Ops.

Ho iniziato a FAQ on my blog per cercare di raccogliere informazioni su questo, fino al momento in cui i dettagli ufficiali emergeranno (se mai).

+0

Grazie per la risposta. Molti di noi saranno interessati da questa nuova funzione/app. Spero che Google apra le informazioni e ci guidi a prepararci al più presto. – Tomcat

Problemi correlati