Android Watch / Phone MessageApi

时间:2015-10-27 19:21:15

标签: wear-os

我正在开发一款适用于Android Watch的应用程序,该应用程序需要移动应用程序在后台或后台运行。我尝试使用MessageApi来与手机上的应用程序进行通信,但即使应用程序未打开,我也会收到回复消息。

在我启用Android Watch上的活动之前,您建议检查手机应用程序是否正在运行(无论是前台/后台)?

感谢您的帮助。

2 个答案:

答案 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;
}