如何"连接"如果在Android Wear应用程序中断开连接,则以编程方式运行android手表

时间:2017-04-04 07:05:39

标签: android bluetooth android-wear-data-api

在操作栏菜单的右上方,在Android Wear应用中,我看到以下项目:"断开华为手表" (这是我用来测试的手表)。

如果我选择这个项目,确实,手表有点"断开" - 即使蓝牙通常处于打开状态且设备仍然被视为在一般蓝牙设置中配对,因此没有蓝牙通信。最糟糕的是,有时手表在没有用户输入的情况下会断开连接,如果手表离手机很远很长时间。

我的应用程序在很大程度上依赖于蓝牙连接,最终用户很可能不会注意到手表被断开"的事实。他们只是假设应用程序有问题。

因此,我的应用程序检测“断开连接的手表”至关重要。州。最好是自动或在用户确认后再次连接手表。在更糟糕的情况下,可以检测到案例,并要求用户在Android Wear中解决问题。

  • 如何通过Android Wear菜单以编程方式检测手表已断开连接。
  • 如何连接回来。

这不是关于如何检测蓝牙是否已启用或禁用,现在也是关于如何配对蓝牙设备。

我正在使用setUrgent()的数据API。

1 个答案:

答案 0 :(得分:1)

我建议使用

@Override
public void onConnectionSuspended(int cause) {

}

检测您的节点是否已断开连接。

@Override
public void onPeerConnected(Node node) {
    Log.d(TAG, "CONNECTED");          
}

@Override
public void onPeerDisconnected(Node node) {
    Log.d(TAG, "PEER DISCONNECTED");
}

但现在不推荐使用。

使用CapabilityApi代替

不要忘记你可以使用

  Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(
                    new ResultCallback<NodeApi.GetConnectedNodesResult>() {
                        @Override
                        public void onResult(NodeApi.GetConnectedNodesResult nodes) {
                            for (Node node : nodes.getNodes()) {
                            mNode = node;
                            }
                        }
                    }

            );

检索附近的节点

我不知道你的代码。这就是为什么我可以说出如此广泛的建议。