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 на предмет точных намерений - вы получите уведомление, когда плитка будет открыта, закрыта и когда будут нажаты кнопки на ней.

Другие вопросы по тегам