Autore Topic: Shared Preferences. Dove sono memorizzate fisicamente?  (Letto 2258 volte)

Offline AlessioElia

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Shared Preferences. Dove sono memorizzate fisicamente?
« il: 15 Marzo 2013, 15:49:35 CET »
0
Salve ragazzi.

Ho provato a scrivere il path delle shared preferences nel logcat durante l'esecuzione.

Mi dice che è data/data/databases/packagename/nomefile.xml

Il mio problema è che se apro il file explorer non lo trovo.

Partendo dalla root se apro data all'interno non trovo nulla. Eppure la mia app salva e legge da sto maledetto file :)

Help Me!

Grazie mille!!

Offline Vlad

  • Utente normale
  • ***
  • Post: 271
  • Respect: +16
    • Github
    • Google+
    • vmihalachi
    • vmihalachi
    • Mostra profilo
    • vmihalachi.com
  • Dispositivo Android:
    Samsung galaxy s2 | Samsung galaxy tab 7
  • Play Store ID:
    Vlad Mihalachi
  • Sistema operativo:
    Windows 8
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #1 il: 15 Marzo 2013, 16:27:56 CET »
+2
ti serve il root del telefono credo

Offline brissio

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: +6
    • Mostra profilo
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #2 il: 15 Marzo 2013, 16:32:03 CET »
+1
Confermo, serve il root. Potresti scrivere direttamente sulla sd e poi migrare l'app nella memoria interna, se proprio non vuoi eseguire il root

Offline AlessioElia

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #3 il: 15 Marzo 2013, 16:35:32 CET »
0
Confermo, serve il root. Potresti scrivere direttamente sulla sd e poi migrare l'app nella memoria interna, se proprio non vuoi eseguire il root

In che senso dici potresti scrivere direttamente sulla sd e poi migrare l'app nella memoria interna??

Offline brissio

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: +6
    • Mostra profilo
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #4 il: 15 Marzo 2013, 16:53:37 CET »
+1
data/data/databases/packagename/nomefile.xml è sicuramente un path della internal storage.
Se tu scrivessi tutti i dati sulla sd riusciresti senza problemi a navigrci dentro
Se no ancora più veloce imposta nel manifest la InstallLocation come indicato qui
[facile] Abilitare il "Move to SD" per la propria applicazione - Android Developers Italia

Offline Eu4ia

  • Utente junior
  • **
  • Post: 93
  • Respect: +16
    • Mostra profilo
  • Play Store ID:
    Eu4ia
  • Sistema operativo:
    Ubuntu 11.10 + Windows 7
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #5 il: 15 Marzo 2013, 16:54:43 CET »
0
Confermo, serve telefono rooted.
Però se il tuo problema è verificare come verrà scritto il file delle SharedPreferences (un file xml) puoi lanciare l'emulatore.
Su emulatore la cartella data è accessibile!

 ;-)
Se ti sono stato utile premi "Thanks" ;-)

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #6 il: 15 Marzo 2013, 16:57:13 CET »
0
Comunque la cartella non é databases ma shared_prefs.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline AlessioElia

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #7 il: 15 Marzo 2013, 17:28:33 CET »
0
Che bello!

I tablet che avranno l'applicazione che sto sviluppando non prevedono da commessa la memoria esterna.

L'unica soluzione è quella di creare un'activity per la gestione CRUD di questo file?. (Aggiungi modifica elimina preferences)

Vabbè c'ho provato :(
« Ultima modifica: 15 Marzo 2013, 17:30:22 CET da AlessioElia »

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #8 il: 15 Marzo 2013, 18:04:43 CET »
+1
Che bello!

I tablet che avranno l'applicazione che sto sviluppando non prevedono da commessa la memoria esterna.

L'unica soluzione è quella di creare un'activity per la gestione CRUD di questo file?. (Aggiungi modifica elimina preferences)

Vabbè c'ho provato :(
Non ho capito che stai cercando di fare. Perché vuoi accedere al file delle SharedPreferences?
Postate il LogCat LogCat LogCat LogCat LogCat

Offline AlessioElia

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #9 il: 18 Marzo 2013, 10:14:12 CET »
0
Non ho capito che stai cercando di fare. Perché vuoi accedere al file delle SharedPreferences?
Ciao blackgin.

Mi serve scrivere delle cose in un file xml di configurazione per la mia app.
Del tipo tempo di refresh cose così.
Per fare questa cosa ho cercato di usare le shared preferences.
Il problema è che se l'utente vorrebbe editare questo file di configurazione non può farlo poichè non vi può accedere.
Volevo evitare di creare un'activity per modificare questi valori.

Offline brissio

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: +6
    • Mostra profilo
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #10 il: 18 Marzo 2013, 10:44:41 CET »
0
SharedPreferences è nato per leggere appunto le preferenze. Quindi non fa al caso tuo.
Tu stai andando contro corrente quindi devi arrangiarti con modi un pò spartani.
Trova zone di memoria dove è possibile accedere in lettura e scrittura, meglio nella ExternalMemory (attento che non necessariamente la external memory è la sdcar) e fai modificare a questo punto il tuo file tramite app di terze parti tipo file explorer...
Io se fossi in te avrei usato tranquillamente SharedPreferences e una activity apribile tramite password o combinazioni/percorsi nascosti

Offline Eu4ia

  • Utente junior
  • **
  • Post: 93
  • Respect: +16
    • Mostra profilo
  • Play Store ID:
    Eu4ia
  • Sistema operativo:
    Ubuntu 11.10 + Windows 7
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #11 il: 18 Marzo 2013, 11:28:35 CET »
0
Ciao blackgin.

Mi serve scrivere delle cose in un file xml di configurazione per la mia app.
Del tipo tempo di refresh cose così.
Per fare questa cosa ho cercato di usare le shared preferences.
Il problema è che se l'utente vorrebbe editare questo file di configurazione non può farlo poichè non vi può accedere.
Volevo evitare di creare un'activity per modificare questi valori.

La strada normale vorrebbe proprio così invece...
Un'activity proprio per gestire le shared preferences (ad esempio font, temi, settaggi specifici dell'app ecc).

Pensa se lasciassi davvero modificabile un file del genere, come potresti (solo per fare un banalissimo esempio) impedire ad un utente di inserire un campo alfanumerico dove la tua app se ne aspetta uno numerico?
Cioè se la tua app avesse un refresh impostabile da 1 sec a 10 min, lasciare all'utente la possibilità di poter inserire "OGNI 30 ANNI" oppure "34&/!"£"£$oln6kq=WR^ADSFV" non mi sembra prorio cosa buona e giusta, no?  ;-)
Se ti sono stato utile premi "Thanks" ;-)

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #12 il: 18 Marzo 2013, 11:57:40 CET »
0
Ciao blackgin.

Mi serve scrivere delle cose in un file xml di configurazione per la mia app.
Del tipo tempo di refresh cose così.
Per fare questa cosa ho cercato di usare le shared preferences.
Il problema è che se l'utente vorrebbe editare questo file di configurazione non può farlo poichè non vi può accedere.
Volevo evitare di creare un'activity per modificare questi valori.
Cioé tu vuoi che l'utente edita direttamente il file xml? C'é un motivo particolare per questa scelta?
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Shared Preferences. Dove sono memorizzate fisicamente?
« Risposta #13 il: 18 Marzo 2013, 12:17:08 CET »
0
Ciao blackgin.

Mi serve scrivere delle cose in un file xml di configurazione per la mia app.
Del tipo tempo di refresh cose così.
Per fare questa cosa ho cercato di usare le shared preferences.
Il problema è che se l'utente vorrebbe editare questo file di configurazione non può farlo poichè non vi può accedere.
Volevo evitare di creare un'activity per modificare questi valori.

Faccio notare che se il problema è che non hai tempo/voglia (e ci sta tutto eh, lecitissimo  :-) ) di farti l'activity di gestione delle shared preferences, forse ti è sfuggito che esiste la PreferenceActivity che fa il grosso (se non tutto) il lavoro.
Se googleggi in giro trovi diversi esempi sull'argomento (e anche in questo forum se non ricordo male).