Ho un paio di applicazioni che implementano alcune logiche di login. Se diciamo che un'applicazione è registrata su [email protected], voglio che tutte queste applicazioni siano registrate su [email protected] Se eseguo il logout, voglio che tutte le applicazioni facciano lo stesso. Ma non voglio fare subito lo stesso. L'applicazione stessa è in grado di gestirlo, ma è necessario sapere se qualche altra applicazione è già stata registrata e, in caso affermativo, effettuare il login per lo stesso indirizzo e-mail di questa app. Quindi ho bisogno di sapere qual è l'indirizzo email per il quale viene registrata l'altra app. Ho bisogno di memorizzare una stringa.Condivisione di piccole quantità di dati tra le app
Prima stavo pensando a SharedPreferences
, ma questa è una pessima idea perché ci sono altre opzioni (e lo stackoverflow è pieno di un cattivo esempio di utilizzo di SharedPreferences tra processi). Nonostante ciò ho provato questo. Configura sharedUserId
su tutte le app, chiamato createPackageContext
e cerca di ottenere le preferenze. Ma non posso leggerlo. Sempre ho ottenuto nulla, anche se ho usato Context.Mode_WORLD_READABLE
- che è deprecato a proposito.
Ok, lezione appresa non usare SharedPreferences
per quello (suppongo). Ma tutto ciò di cui ho bisogno ora è di memorizzare una stringa singola da qualche parte dove potrebbe essere letta da altre mie app.
Forse dovrei usare ContentProvider
? Ma sul serio ... per una stringa? Qual è l'altra opzione? Sono sicuro che per un'operazione così semplice non ho davvero bisogno di Service
o ContentProvider
, ma in realtà non ho idea di come farlo.
+1 Molto buona domanda. Hai spiegato cosa vuoi fare molto bene. Hai anche mostrato quali opzioni hai considerato nel cercare di trovare la tua soluzione. –
Non conosco un buon modo per farlo a parte un file condiviso (sì, fragile, insicuro) o un ContentProvider. Fa schifo che 'SharedPreferences' abbia condiviso la condivisione, ma forse un giorno ... – Simon