Я пытался выяснить, можно ли отключить/включить всплывающие уведомления GO SMS через что-то вроде Tasker. Я наткнулся на следующую строку в /data/data/com.jb.gosms/shared_prefs/com.jb.gosms_preferences.xml
:
<boolean name="pref_key_popup_msg" value="true" />
Казалось бы, я мог бы просто изменить это на false
, но GO SMS этого не видит (и на самом деле он перезаписывает файл shared_prefs, как это выглядит). Есть ли способ заставить GO SMS перечитать этот файл shared_prefs?
У меня есть root-права, и мне довольно удобно работать с командами оболочки, а также с Tasker; Я думаю, что любое решение потребует одного из вышеперечисленных. (Tasker может запускать действия или транслировать намерения.)
Поскольку это граничит с нюансами программирования с точки зрения того, как хранятся настройки, действие, которое реализует PreferenceActivity
, фактически изменяет весь XML-файл предпочтений, а не только одно значение ключа.
Весь XML-файл предпочтений загружается и кэшируется, любые внесенные изменения переписываются одним махом.
Вполне вероятно, что в случае с Go-SMS указано значение по умолчанию, true
независимо от того, что было выбрано, а также, вероятно, оно жестко запрограммировано — обратитесь к разработчикам Go-SMS, чтобы выяснить, почему?
Попробуйте отредактировать файл после «принудительной остановки» приложения в settings
→ applications
→ manage applications
. Однако вы не можете изменить разрешение приложения на отображение уведомлений.
У меня была точно такая же проблема с приложением, которое я использую - я укоренился и нашел файл настроек XML и значение, которое я изменил вручную, но каждый раз, когда я загружаю приложение, оно перезаписывает файл. Прочитав об этом и поэкспериментировав с кодом, я думаю, что это связано с тем, что приложение будет вызывать свои настройки (getPreferences) только после закрытия диалогового окна/экрана настроек - обычно так написано приложение. Я до сих пор не совсем понимаю, почему/как приложение переписывает XML-файл предпочтений независимо от того, изменялись ли настройки в приложении или нет.
Кстати, я тоже хочу использовать Tasker для изменения значения в prefs xml приложения, чтобы приложение динамически реагировало. Я изучаю декомпиляцию приложения, находящего соответствующий фрагмент кода Java, а затем изменяю его, чтобы чаще вызывать префы.
Данг Кхоа
Данг Кхоа
true
. :(Рубен Рой
Данг Кхоа
Дэн Халм