7 votes

Modifier manuellement le fichier shared_prefs et forcer l'application à le mettre à jour ?

J'ai essayé de savoir s'il était possible de désactiver/activer les notifications popup de GO SMS via quelque chose comme Tasker. Je suis tombé sur la ligne suivante dans /data/data/com.jb.gosms/shared_prefs/com.jb.gosms_preferences.xml :

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

Il semblerait que je puisse juste changer ça en false mais GO SMS ne le voit pas (et réécrit le fichier shared_prefs, semble-t-il). Existe-t-il un moyen de forcer GO SMS à relire ce fichier shared_prefs ?

Je suis enraciné et je suis assez à l'aise avec les commandes shell ainsi qu'avec Tasker ; je pense que toute solution nécessiterait l'un des éléments ci-dessus. (Tasker peut lancer des activités ou diffuser des intentions).

1voto

Sam Barnum Points 5019

Essayez d'éditer le fichier après avoir "forcé l'arrêt" de l'application en settings applications manage applications . Vous ne pouvez pas modifier l'autorisation de l'application d'afficher les notifications.

1voto

Nick Pierpoint Points 7976

Étant donné que l'on touche ici aux nuances de la programmation en ce qui concerne la manière dont les préférences sont stockées, une activité qui met en oeuvre PreferenceActivity modifie en fait l'ensemble du fichier xml des préférences, et pas seulement une valeur clé.

L'ensemble du xml des préférences est chargé et mis en cache, et si des modifications sont apportées, il est réécrit en une seule fois.

Très probablement, dans le cas de Go-SMS, il y a une valeur par défaut spécifiée. true indépendamment de ce qui a été sélectionné, et aussi probablement, pour être codé en dur - soulever la question avec les développeurs de Go-SMS pour savoir pourquoi ?

-1voto

Sammy Points 21

J'ai eu exactement le même problème avec une application que j'utilise - je suis enraciné et j'ai trouvé le fichier XML prefs et la valeur que j'ai changé manuellement mais à chaque fois que je démarre l'application, elle réécrit le fichier. Après avoir lu quelques articles sur le sujet et expérimenté avec le code, je pense que c'est parce qu'une application ne fait appel à ses préférences (getPreferences) qu'une fois qu'une boîte de dialogue/écran de paramètres est fermée - généralement, c'est ainsi que l'application est écrite. Je ne sais toujours pas pourquoi/comment l'application réécrit le xml des préférences, que les paramètres soient modifiés ou non dans l'application.

J'aimerais aussi utiliser Tasker pour modifier une valeur dans le fichier xml des préférences d'une application afin que celle-ci réagisse de manière dynamique. Je cherche à décompiler l'application, à trouver le morceau de code Java correspondant et à le modifier pour qu'il fasse appel aux préférences plus fréquemment.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X