2011-01-24 23 views
8

Come ho controllato la descrizione delle API per getSharedPreferences (String, int), il secondo attributo sta definendo la modalità di accessibilità e può richiedere 0 o MODE_PRIVATE per l'operazione predefinita, MODE_WORLD_READABLE e MODE_WORLD_WRITEABLE per controllare le autorizzazioni.È possibile condividere le preferenze condivise tra diverse applicazioni Android?

Ma c'è questa piccola nota nella descrizione API:

Nota: attualmente questa classe (android.content.SharedPreferences) non supporta l'utilizzo su più processi. Questo sarà aggiunto in seguito.

Inoltre in Mark L. Murphy libro "che inizia Android 2", ha detto:

(Alla fine, le preferenze potrebbe essere condivisibili tra le applicazioni, ma che non è supportato a partire dal momento della questa scrittura)

Sono così confuso! significa che MODE_WORLD_READABLE e MODE_WORLD_WRITEABLE di getSharedPrefrences sono lì ma NON SUPPORTATI ANCORA nell'ultimo livello API ???

Grazie! Migan

risposta

7

Il riferimento del mio libro si basa su quel commento.

Inoltre, la creazione di qualsiasi file MODE_WORLD_READABLE o (peggio) MODE_WORLD_WRITEABLE è una cattiva idea. Si perde ogni speranza di sicurezza.

Se si desidera condividere dati tra le due applicazioni, ci sono una miriade di soluzioni, come ad esempio:

  • servizio con un API esposte dal AIDL
  • servizio con un API esposte tramite i comandi inviati via startService() e le risposte inviate tramite una trasmissione Messenger o createPendingResult()PendingIntent o qualcosa
  • fornitore di contenuti
  • Intents

Tutti questi consentono di definire le autorizzazioni per l'integrazione e consentono di controllare la granularità dell'accesso.

+0

Grazie per la risposta super completa! Ero solo confuso da quando in J2ME, RecordStores può essere facilmente condiviso tra diverse applicazioni impostando la modalità di autorizzazione su AUTHMODE_ANY, anche se questo non ha sicurezza e non è raccomandato. Ecco perché sono stato sorpreso dal fatto che Android Prefrences non supporti ancora MODE_WORLD_READABLE e MODE_WORLD_WRITEABLE. – Migan

Problemi correlati