2013-02-12 8 views
27

Considerare questa come una domanda wiki.Mappa Android V2 - Perché autorizzazione MAPS_RECEIVE

Mentre ho impostato il mio progetto per supportare Map V2, è stato aggiunto un passaggio per l'autorizzazione MAPS_RECEIVE.

<permission 
      android:name="com.example.mapdemo.permission.MAPS_RECEIVE" 
      android:protectionLevel="signature"/> 
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/> 

Perché abbiamo creato e utilizzato l'autorizzazione dall'app stessa?

L'app di Google Play Services interagisce con questa autorizzazione?

Questo permesso non può occuparsi di queste cose?

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 

ho pensato l'uso di un'autorizzazione personalizzata è quello di consentire ad altre applicazioni per lanciare/utilizzare i servizi della nostra app/Resources.

+0

Sono solo curioso di sapere perché abbiamo impostato questo permesso. Tra l'altro il mio progetto funziona perfettamente con la mappa V2. –

+1

@MontyThreeCard si .. Non ho seguito questo post per un po ' –

risposta

72

Per i visitatori futuri:

Questa autorizzazione è ora completamente inutile. L'ultimo aggiornamento di Google Play Services 3.1.59 lo ha reso inutile. Di conseguenza, può essere rimosso .

source

6

Questo è lo stesso schema che si vede quando si utilizza Google Cloud Messaging (GCM) con l'autorizzazione C2D_MESSAGE. L'idea è di proteggere un endpoint nella tua applicazione (ad esempio un ricevitore broadcast) in modo che qualche altro componente (presumibilmente parte dell'API di Maps) possa contattarlo in sicurezza (altrimenti, un'altra applicazione potrebbe impersonare la tua applicazione utilizzando lo stesso filtro intent).

In questo caso, quindi, l'API di Maps imposta internamente tale endpoint (in modo trasparente all'utente) e può, con l'uso di questa autorizzazione, che questo endpoint non può essere rappresentato (poiché per farlo è necessario il permesso, che è protetto dalla firma dell'applicazione).

+2

Per i futuri visitatori guardate @ Risposta di eccezione: "Questa autorizzazione è ora completamente inutile. L'ultimo aggiornamento di Google Play Services 3.1.59 lo ha reso inutile. Di conseguenza, può essere rimosso. " – Chiara

3

ho scoperto che questa autorizzazione è ancora necessaria quando si utilizza il certificato di debug. Quando ho esportato e firmato la mia applicazione ha funzionato bene, ma non funzionava quando ho usato il certificato di debug. Ho l'MD5 sia per il mio debug cert che per l'application cert associato alla stessa chiave. Quando ho finalmente aggiunto queste autorizzazioni extra, ha funzionato. Sto usando un Moto X in esecuzione 4.4 con tutto aggiornato.

3

Questa autorizzazione specifica il nome del pacchetto. cioè

<permission 
      android:name="package_name.permission.MAPS_RECEIVE" 
      android:protectionLevel="signature"/> 
    <uses-permission android:name="package_name.permission.MAPS_RECEIVE"/> 

in tal modo, l'API Google consente semplicemente il vostro progetto per ricevere la mappa. L'autorizzazione indica dove usare l'API.

+0

questa autorizzazione è stata rimossa in 3.1.59 .. non è più necessaria .. –

Problemi correlati