Сохраняйте настройки циферблата как на мобильных, так и на носимых устройствах.

Я хочу предоставить циферблат Wear OS, который поставляется с приложением Android, которое управляет несколькими свойствами циферблата. Я настроил все в Android Studio, и я закончил с мобильной частью и рендерером циферблата. Теперь я столкнулся с проблемой обмена данными между мобильным телефоном и часами, потому что я хотел бы отправить свойства, установленные на моем телефоне, на часы. Я читал что-то о DataItem, и я думаю, что он поможет мне с обменом данными.

Теперь, после обмена данными и соответствующей настройки циферблата, я хочу, чтобы и приложение, и циферблат «запоминали» эти настройки при перезапуске. Есть ли способ сохранить DataItems или есть другие варианты (кроме сохранения отдельно на обоих устройствах)?


person d0n.key    schedule 04.01.2020    source источник


Ответы (1)


DataItem сохраняются, но они не совсем надежны, и вам по-прежнему нужен пользовательский интерфейс для настройки — в идеале на обоих устройствах. Я решил предоставить общий доступ к одному XML-файлу, который преобразуется в PreferenceScreen на обоих, и создал то, что назвал PrefSyncService< /a> для автоматической синхронизации SharedPreferences между двумя устройствами.

person String    schedule 05.01.2020
comment
Я думаю, что информация о сохранении DataItems решает эту проблему. Пользовательский интерфейс конфигурации на обоих устройствах на самом деле не работает в моем приложении, так как это слишком много настроек, которые нужно нажимать на маленьком экране часов: D - person d0n.key; 05.01.2020
comment
DataItem сохраняемость не совсем надежна, но вам придется решить, достаточно ли она хороша для вашего приложения. И PrefSyncService отлично работает в одну сторону: сделайте все свои настройки на телефоне, он синхронизирует эти настройки с часами, и тогда вы сможете получить к ним доступ через SharedPreferences там. - person String; 06.01.2020
comment
Звучит даже лучше. Также я обнаружил, что DataItems реализованы совсем не так, как я ожидал, поэтому я собираюсь изучить этот PrefSyncService, когда у меня будет время. - person d0n.key; 06.01.2020
comment
Дошло до того, что все работает нормально. После того, как я понял, как использовать ваш PrefSyncService, это была довольно простая и быстрая реализация, так что большое спасибо за это :) (Может быть, все же предложите обновить вашу документацию, поскольку не совсем очевидно, на какой стороне должны быть реализованы определенные вещи, например как PrefListener) - person d0n.key; 08.01.2020
comment
Рад это слышать! Я также был бы рад, если бы вы прислали конкретные предложения по обновлению документации, так как мне непонятно, что, гм, было непонятно вам. ???? - person String; 08.01.2020