Android Wear усложняет поведение при обновлении
Я пытаюсь запрограммировать услугу усложнения в Android Wear, используя в качестве руководства службу RandomNumberProviderService, но у меня возникают проблемы с выделением способа отделить поведение, когда я нажимаю на сложность и когда мне нужно только обновить информацию программно (когда часы получают DataApi менять). Нажатие на сложность должно отправить сообщение на контроллер, и это происходит сейчас, но у меня нет возможности только обновить информацию о сложностях.
1 ответ
Проверьте ComplicationSimpleWatchFaceService:
/*
* Called when there is updated data for a complication id.
*/
@Override
public void onComplicationDataUpdate(
int complicationId, ComplicationData complicationData) {
Log.d(TAG, "onComplicationDataUpdate() id: " + complicationId);
// Adds/updates active complication data in the array.
mActiveComplicationDataSparseArray.put(complicationId, complicationData);
invalidate();
}
Согласно получению данных и оформлению документации об осложнениях:
Чтобы начать получать данные о усложнении, звонит циферблат
setActiveComplications
, вWatchFaceService.Engine class
, со списком идентификаторов усложнения циферблата. Циферблат создает эти идентификаторы, чтобы однозначно идентифицировать слоты на циферблате, где могут возникать осложнения, и передает ихcreateProviderChooserIntent
метод, позволяющий пользователю решить, какие сложности должны идти в какой слот.Данные о сложностях доставляются через onComplicationDataUpdate (из
WatchFaceService.Engine
) Перезвоните.
Пожалуйста, проверьте Android WatchFace (пример ссылки, которую вы предоставили, является частью этого примера), она демонстрирует, как создать циферблаты для ношения на Android, и включает приложение для телефона и носимое приложение. Носимое приложение имеет множество циферблатов, включая аналоговые, цифровые, OpenGL, календарь, пошаговые, интерактивные и т. Д.
Надеюсь это поможет.