18

Sto imparando la programmazione Android e ho compreso il concetto di permesso personalizzato.Poche domande sulle autorizzazioni personalizzate in Android

Sulla base della mia comprensione Ecco come funziona autorizzazioni personalizzate:

'Base app' in grado di proteggere alcuni dei suoi componenti (ad esempio, di attività e servizi) dichiarando autorizzazioni personalizzate (ad esempio, utilizzando <permission> tag nel file manifesto) e la 'client app' che chiama le attività e i servizi protetti da autorizzazioni personalizzate devono acquisire le autorizzazioni necessarie (ad esempio, utilizzando i tag <uses-permission> nel file manifest) per chiamare tali componenti nello base app.

Tuttavia, ho queste domande relative autorizzazioni personalizzate:

  1. Se l'autorizzazione personalizzato è dichiarata come pericolosa (vale a dire, android:protectionLevel="dangerous"), fa le client app necessità di ottenere l'approvazione da parte dell'utente durante il tempo di installazione? In tal caso, come fa l'utente a conoscenza di queste autorizzazioni personalizzate perché non ci sarà alcuna documentazione per le autorizzazioni personalizzate.
  2. Durante l'installazione, in che modo lo client app sa che base app è già installato nel telefono dell'utente? Esiste comunque lo client app per conoscere queste informazioni?
  3. Una volta installato client app, cosa succederà se l'utente decide di rimuovere base app? In questo caso, se l'utente tenta di utilizzare client app causerà qualche eccezione di sicurezza?

Non so se queste domande abbiano senso, ma mi chiedo come le autorizzazioni personalizzate funzionino effettivamente nello scenario reale.

Grazie.

+0

consultare questo link http://stackoverflow.com/questions/8816623/how-to-use-custom-permissions-in-android questo aiuterà – Manu

risposta

1

Le risposte alle tue domande sono le seguenti. Ma è possibile fare riferimento a http://developer.android.com/guide/topics/manifest/permission-element.html per una migliore comprensione delle autorizzazioni di Android.

1.Sì, se si dichiara

android:protectionLevel="dangerous" 

allora il sistema non può concedere automaticamente ai richiedenti application.Any permessi pericolose richiesti da un'applicazione possono essere visualizzati per l'utente e richiedere la conferma prima di procedere.

L'applicazione di base che definisce un'autorizzazione personalizzata dovrebbe fornire una descrizione tramite

android:description="string resource" 

Ecco la definizione un esempio permesso. Spero che sia auto esplicativo.

<permission android:description="string resource" 
android:icon="drawable resource" 
android:label="string resource" 
android:name="string" 
android:permissionGroup="string" 
android:protectionLevel=["normal" | "dangerous" | 
"signature" | "signatureOrSystem"] /> 

2.As quanto ne so, non c'è modo per l'applicazione client di vedere la presenza della base app al momento dell'installazione. Ma è possibile quando viene avviata l'App client. In ogni caso, le autorizzazioni sono concesse dal sistema Android in base al tuo file android.xml. Quindi l'app client non deve preoccuparsi dell'app di base al momento dell'installazione.

3. L'app di base può essere rimossa anche quando l'app client è ancora installata. Non passerà attraverso messaggi di errore o eccezioni di sicurezza in qualsiasi momento.Tuttavia, quando tenti di eseguire nuovamente l'app client, potresti ottenere un'eccezione "Attività non trovata" nel punto in cui provi a richiamare un'attività dell'app base dall'app client.

+4

due punti importanti: in primo luogo, i l'accettazione da parte dell'utente è "tutto o niente", oppure installa l'app con le avvertenze di autorizzazione, oppure non installarla. In secondo luogo, se l'app di concessione non è stata installata prima dell'applicazione, le autorizzazioni non saranno concesse e la funzionalità che dipende da esse non funzionerà. –

Problemi correlati