在手持应用程序中向BroadcastReceiver发送消息给wearable

时间:2014-11-11 09:38:24

标签: android notifications broadcastreceiver wear-os android-wear-data-api

我想在用户指定的某个时间在可穿戴应用中显示仅通知

为了进行测试,我在掌上电脑应用程序中有一个BroadcastReceiver,用于启动服务并在 手持设备和可穿戴设备中显示当时的通知。我还在手持设备和可穿戴模块之间建立了Message Api通信。这两部分工作正常。

所以我不知道当BroadcastReceiver被触发时我是否可以通过消息Api发送消息,以便仅在可穿戴设备中显示通知。我应该在onReceive()方法中启动GoogleApiClient吗?或者还有其他方法可以做我想要的吗?

这是我的BroadcastReceiver,但我想更改其代码:

public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Intent service = new Intent(context, AlarmService.class);
        service.putExtra(AlarmService.INTENT_NOTIFY, true);
        service.putExtra("alarmID", intent.getIntExtra("alarmID", 0));
        context.startService(service);
    }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

我建议不要在onReceive中启动GoogleApiClient - 在UI线程上执行onReceive,并且将消息发送到可穿戴设备可能太费时间,这对于这个来说是个好主意。

听起来好像一旦你有了用户的目标时间,手持设备就不需要再次参与了,这是正确的吗?只有可穿戴设备在目标时间做了什么,对吗?

如果是这样,我建议如下:

  1. 掌上电脑用户指定目标时间后,使用Messaging API将该值发送给可穿戴设备
  2. 当可穿戴应用程序收到目标时间戳时,可穿戴应用程序使用AlarmManager当时触发广播
  3. 在可穿戴应用程序中设置BroadcastReceiver以接收AlarmManger的广播
  4. 在BroadcastReceiver中(在可穿戴应用中),直接在可穿戴设备上生成通知