Android: ¿Cómo ver el archivo SharedPreferences?
Para fines de depuración, necesito acceder al archivo de preferencias compartidas de mi aplicación. Por lo que sé que debería encontrar este archivo en / data / … pero no puedo acceder a la carpeta / data a través de permisos perdidos. ¿Esto es normal? ¿Algún modo de seguir accediendo al archivo? (Excepto tal vez raeding desde el interior de la aplicación?) El teléfono no está enraizada y yo también no quieren raíz. Gracias por cualquier pista!
- ¿Cómo regresar de la pantalla de preferencias a la actividad principal?
- Almacenar cookie en las preferencias compartidas
- Obtener SharedPreferences de un servicio
- Preferencias de Android: Valores predeterminados incorrectos DESPITE "setDefaultValues"
- Uso de preferencias no predeterminadas en PreferenceActivity
- Configuración de eclipse para quejarse de cadenas codificadas duras para las preferencias de Android xml
- Actividad de preferencias de Android IllegalArgumentException: fragmento no válido para esta actividad
- Actualizar actividad si se cambia la preferencia
- Método RingtonePreference getEntry
- SharedPreference Cambios no reflejados en mi servicio de fondo de pantalla
- La forma más segura de usar SharedPreferences
- ¿cómo puedo establecer el valor marcado en ListPreference
- Las preferencias compartidas no persisten después de reiniciar la aplicación
He encontrado este problema en el pasado (no tener permiso de root en el sistema de archivos pero necesitando acceso a la carpeta de datos de aplicaciones). Si no tiene un dispositivo enraizado o un dispositivo de desarrollo como el ADP1, puede intentar ejecutar su aplicación en el emulador y luego acceder a los archivos desde el "Explorador de archivos" de eclipse o DDMS.
EDIT # 1: Intenta usar la función getAll de sharedPreferences y guardarla en un archivo, veré si puedo juntar una muestra.
EDIT # 2: Código de ejemplo, creado a partir de muestras aleatorias alrededor de la red, probablemente no es la mejor manera de hacerlo, pero lo probé y funciona. Escribe un archivo en la raíz de su tarjeta sd. Asegúrate de tener
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Establecido en su manifiesto
private void saveSharedPreferences() { // create some junk data to populate the shared preferences SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE); SharedPreferences.Editor prefEdit = prefs.edit(); prefEdit.putBoolean("SomeBooleanValue_True", true); prefEdit.putInt("SomeIntValue_100", 100); prefEdit.putFloat("SomeFloatValue_1.11", 1.11f); prefEdit.putString("SomeStringValue_Unicorns", "Unicorns"); prefEdit.commit(); // BEGIN EXAMPLE File myPath = new File(Environment.getExternalStorageDirectory().toString()); File myFile = new File(myPath, "MySharedPreferences"); try { FileWriter fw = new FileWriter(myFile); PrintWriter pw = new PrintWriter(fw); Map<String,?> prefsMap = prefs.getAll(); for(Map.Entry<String,?> entry : prefsMap.entrySet()) { pw.println(entry.getKey() + ": " + entry.getValue().toString()); } pw.close(); fw.close(); } catch (Exception e) { // what a terrible failure... Log.wtf(getClass().getName(), e.toString()); } }
Fuentes Uno Dos Tres
En un teléfono sin conexión no hay, por desgracia, ninguna buena manera de acceder a la carpeta / data. Puede intentar crear los archivos con MODE_WORLD_READABLE
manera:
SharedPreferences myPrefs = this.getSharedPreferences("prefs", MODE_WORLD_READABLE);
A continuación, intente utilizar adb pull
para obtener el archivo en el escritorio.
adb pull /data/data/<packagename>/shared_prefs/prefs.xml
pero tu kilometraje puede variar.
- ¿Debo usar ProGuard?
- ¿Establecer el color de fondo de una vista de diseño a un degradado en Android?