Microsoft Band: Показать уведомление о диапазоне от широковещательного приемника

Я пытаюсь показать предупреждение на MS Band при получении облачного сообщения Google с помощью приложения Android. Я использую Центры уведомлений Azure для отправки сообщений и ответа на них. При получении сообщения я хотел бы отправить уведомление группе.

Проблема, с которой я сталкиваюсь на данный момент, заключается в том, что когда я проверяю соединение полос в NotificationHandler, возникает следующее исключение:

Компоненты BroadcastReceiver не могут привязываться к службам.

Рассматриваемый код выглядит следующим образом:

if (client == null) {
        BandInfo[] devices = BandClientManager.getInstance().getPairedBands();
        if (devices.length == 0) {
            Log.i(TAG, "Band isn't paired with your phone");
            return false;
        }
        client = BandClientManager.getInstance().create(ctx, devices[0]);
    } else if (ConnectionState.CONNECTED == client.getConnectionState()) {
        return true;
    }

    Log.i(TAG, "Band is connecting...");
    return ConnectionState.CONNECTED == client.connect().await();

Исключение выдается при вызове client.connect().await()

Я предполагаю, что обработчик уведомлений настроен как BroadcastReceiver за кулисами и что, пытаясь взаимодействовать с Band, я нарушаю правила BroadcastReceiver, привязываясь к службе.

Как мне справиться с этим сценарием? Наверняка это распространенный сценарий — зеркальное отображение уведомления на браслете, когда оно принимается приложением? Я думаю, что единственный способ справиться с этим — создать новую службу намерений, чтобы показать уведомление и запустить его из BroadcastReciever, но это кажется неуклюжим?


person Sergio    schedule 05.10.2015    source источник


Ответы (1)


Я решил создать Intent Service, которую я запускаю в широковещательном приемнике, чтобы обрабатывать отправку сообщения на Band. Это позволяет приемнику быстро ответить и выйти, а подключение к диапазону может произойти в службе.

На самом деле он не такой громоздкий, как я себе представлял.

person Sergio    schedule 06.10.2015