Microsoft Band Android Tile XML
Я возлюсь с разработкой приложений для Band 2, используя Microsoft SDK и Android Studio. Я успешно протестировал приложение на своем устройстве, но проблема в том, как приложение связывается с плиткой и как эта плитка добавляется в приложение работоспособности.
Где находится презентационный XML? Я прочитал раздел 8.8 Microsoft Band SDK.pdf. ПРОСТОЙ ТАМОЖЕННЫЙ ПРИМЕР ПЛИТКИ. В примере не указано, где должен находиться код. Нужно ли добавить его в файл класса для приложения или в другой файл? Где создается значок плитки в Android Studio и если да, то где?
Пример того, как класс, плитка xml и значок устанавливаются в группу, был бы хорош.
Спасибо!
1 ответ
SDK включает в себя несколько примеров - посмотрите на один из них под названием BandTileEvent, чтобы увидеть полную реализацию. Быстрая версия заключается в том, что ваш код создания плитки должен создавать серию макетов (содержащих элементы с идентификаторами) и значки при его создании, а затем для обновления вы выберете макет и присвойте значения идентификаторам элементов. Ключевые элементы из примеров выглядят так (модифицированы для удобства чтения):
private PageLayout createButtonLayout() {
return new PageLayout(
new FlowPanel(15, 0, 260, 105, FlowPanelOrientation.VERTICAL)
.addElements(new FilledButton(0, 5, 210, 45).setMargins(0, 5, 0 ,0).setId(12).setBackgroundColor(Color.RED))
.addElements(new TextButton(0, 0, 210, 45).setMargins(0, 5, 0 ,0).setId(21).setPressedColor(Color.BLUE))
);
}
Это создаст объект PageLayout, который используется в процессе создания плитки. Этот метод должен использоваться следующим образом:
BandTile tile = new BandTile.Builder(YOUR_TILE_UUID, "Tile Title", tileIconBitmap)
.setPageLayouts(createButtonLayout())
.setPageIcons(getIconsToUse())
.build();
client.getTileManager().addTile(context, tile);
Как только тайл окажется на полосе, вам нужно отправить обновление - оно должно выглядеть примерно так:
private void updatePages() throws BandIOException {
client.getTileManager().setPages(tileId,
new PageData(pageId1, 0)
.update(new FilledButtonData(12, Color.YELLOW))
.update(new TextButtonData(21, "Text Button")));
}
Как только тайл окажется на вашей полосе, вы можете зарегистрировать фильтр намерений, который будет возвращать эти события. Проверьте образцы SDK на предмет точных намерений - вы получите уведомление, когда плитка будет открыта, закрыта и когда будут нажаты кнопки на ней.