0

我正在尝试在收到带有 Android 应用程序的谷歌云消息时在 MS Band 上显示警报。我正在使用 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()

我假设通知处理程序被配置为场景中的广播接收器,并且通过尝试与乐队交互,我通过绑定到服务来打破广播接收器的规则。

我应该如何处理这种情况?当然,这是一个常见的场景——当应用程序接收到通知时,将通知镜像到乐队上?我认为处理这个问题的唯一方法是创建一个新的 Intent 服务来显示通知并从 BroadcastReciever 开始,但这似乎有点笨拙?

4

1 回答 1

0

我决定创建一个意图服务,我在广播接收器中启动它来处理将消息发送到乐队。这允许接收器快速响应并退出,并且可以在服务中发生频段连接。

它并没有我想象的那么笨重。

于 2015-10-06T08:17:06.777 回答