Android Wear:在Handheld上启动服务

Mat*_*att 8 android wear-os

我正在构建一个Wear应用程序,它将与掌上电脑上的WearableListenerService进行通信.但是,我想确保当应用程序在手表上启动时服务已启动并正在运行.

我最初的想法是发送意图或广播消息以启动服务.但是,我一直无法弄清楚如何让手表将其发送到配对的手持设备.

在手表方面:

Intent intent = new Intent();
intent.setAction("my.wearable.CONNECT");
sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)

在手持设备方面:

public class WearableBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent startServiceIntent = new Intent(context, WearableService.class);
        context.startService(startServiceIntent);
    }
}

<receiver android:name=".service.wearable.WearableBroadcastReceiver" >
    <intent-filter>
        <action android:name="my.wearable.CONNECT" />
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

mah*_*ren 4

有几件事需要澄清

  1. Android Wear设备与Android Device之间的通信接口如下

    • 数据接口
    • 消息接口

    使用NodeApi获取连接的Node ID。

  2. 您无法从佩戴端发送意图并期望在手机端接收它。

  3. 在手机方面,如果您要扩展WearableListenerService,则该服务由 Android 操作系统自行管理。这意味着,如果服务要从 Wear 接收消息或数据,Android 将自动创建服务、服务您的请求并在需要时销毁服务。您不必在这里做任何特殊的事情。

清单中定义的意图(上面复制粘贴)足以让 Android 操作系统执行上述服务管理。