7 votos

¿Cambiar manualmente shared_prefs y obligar a la aplicación a actualizarse?

He estado tratando de averiguar si es posible desactivar/habilitar las notificaciones emergentes de GO SMS a través de algo como Tasker. Me encontré con la siguiente línea en /data/data/com.jb.gosms/shared_prefs/com.jb.gosms_preferences.xml :

<boolean name="pref_key_popup_msg" value="true" />

Parecería que podría darle la vuelta a eso para false pero GO SMS no lo ve (y de hecho reescribe el archivo shared_prefs que parece). ¿Hay alguna forma de obligar a GO SMS a releer este archivo shared_prefs?

Estoy rooteado y me siento bastante cómodo con los comandos de shell, así como con Tasker; pensaría que cualquier solución requeriría una de las anteriores. (Tasker puede disparar Actividades o transmitir intenciones.)

1voto

Nick Pierpoint Puntos 7976

Dado que esto está al borde de los matices de la programación en términos de cómo se almacenan las preferencias, una actividad que implementa PreferenceActivity en realidad modifica toda la preferencia xml, no sólo un valor clave.

Todo el xml de preferencias se carga y se almacena, cualquier cambio que se haga, se reescribe de un solo golpe.

Es muy probable que, en el caso de Go-SMS, haya un valor por defecto especificado true independientemente de lo que se haya seleccionado, y también es probable que esté codificado en papel, plantee el tema a los desarrolladores de Go-SMS para averiguar por qué?

1voto

Sam Barnum Puntos 5019

Intenta editar el archivo después de "forzar" la aplicación en settingsapplicationsmanage applications . Sin embargo, no se puede editar el permiso de la aplicación para mostrar las notificaciones

0 votos

Me refiero a las notificaciones emergentes, no a las notificaciones en la barra de estado. Lo intentaré.

0 votos

Esto no funcionó. La cadena en el archivo xml fue reemplazada por true . :(

0 votos

Dentro de la aplicación puedes ir al menú-configuración -configuración de notificaciones-desmarcar habilitar la ventana emergente para desactivarla. Probablemente la aplicación comprueba cuándo se ha editado y evita que se edite manualmente

-1voto

user29127 Puntos 1

Tuve exactamente el mismo problema con una aplicación que utilizo - estoy rooteado y encontré el archivo XML prefs y el valor que cambié manualmente pero cada vez que arranco la aplicación se reescribe el archivo. Después de haber leído un poco y experimentado con el código, creo que esto se debe a que una aplicación sólo llamará a sus preferencias (getPreferences) una vez que se cierre un diálogo/pantalla de configuración - generalmente así es como se escribe la aplicación. Todavía no estoy muy seguro de por qué/cómo la aplicación reescribe la preferencia xml sin importar si se cambian o no los ajustes de la aplicación.

Por cierto, yo también quiero usar Tasker para cambiar un valor en el prefs xml de una aplicación para hacer que la aplicación responda dinámicamente. Estoy buscando descompilar la aplicación encontrando la pieza relevante del código java y luego modificarla para llamar a las prefs con más frecuencia.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X