Я пытаюсь показать предупреждение на 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, но это кажется неуклюжим?