我正在开发一款适用于Android Watch的应用程序,该应用程序需要移动应用程序在后台或后台运行。我尝试使用MessageApi来与手机上的应用程序进行通信,但即使应用程序未打开,我也会收到回复消息。
在我启用Android Watch上的活动之前,您建议检查手机应用程序是否正在运行(无论是前台/后台)?
感谢您的帮助。
答案 0 :(得分:0)
如果您已在移动应用程序中注册了WearableListenerService,即使您的应用程序未运行,也会由框架调用(如果您的应用程序也在运行,也会调用)。但是,如果您没有使用该服务,那么要在移动应用程序中接收有关磨损网络变化的消息或通知,您需要为您感兴趣的消息/数据类型注册一个或多个回调监听器。在这种情况下,这意味着如果您的应用未运行,您将无法在移动应用上获得这些回调。但是,要使用此功能,请务必根据需要在移动应用中管理听众的生命周期。例如,可以在活动的onResume()中注册此类侦听器,并在onPause()中注销。其结果是,如果您的活动失去焦点(但仍然活着),该活动将不会收到回调(即使作为一个实例,它仍在运行)。您可能希望为应用程序定义一个Application实例,并使用它来监听回调,但同样,它取决于您的需求和应用程序的确切性质。
答案 1 :(得分:0)
您可以搜索节点并解析它们以获取所需结果,或者检查您是否有nearBy节点
private Collection<String> getNodes() {
HashSet <String>results = new HashSet<String>();
NodeApi.GetConnectedNodesResult nodes =
Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();
for (Node node : nodes.getNodes()) {
results.add(node.getId());
}
return results;
}