我想从智能手表中拦截与智能手机的连接事件。这是由Android和Android Wear自动管理的,因此我需要从手表上运行的应用获取此事件。

我在WearableAPI上发现了此问题,而无需轮询Wearable.NodeApi.getConnectedNodes

public class MyService extends WearableListenerService {
  @Override
  public void onPeerConnected(Node peer) {
    Log.i("my wear service", "connected");
    super.onPeerConnected(peer);
    // here I would use MessageAPI to send data saved on "disk" to the smartphone
  }
}


这是正确的方法吗?那么这是正常服务吗?我必须启动它还是在后台自动运行?
还有其他方法可以执行此任务吗?

这是reference

最佳答案

在可穿戴设备和手持式应用程序之间交换数据,我强烈建议您使用Wearable.DataApiWearable.MessageApi。您可能希望在两侧都运行WearableListenerService的子类,并处理通信onDataChanged / onMessageReceived。他们在超类上有一个空的实现。因此,您必须覆盖所需的那个。如果使用DataApi,则必须覆盖onDataChanged,否则将覆盖onMessageReceived


  我必须启动它还是在后台自动运行


您必须在清单中声明您的子类,并使用BIND_LISTENER作为操作,

<intent-filter>
   <action android:name="com.google.android.gms.wearable.BIND_LISTENER"/>
</intent-filter>


Android负责其余的工作。

10-08 07:02