如果在Android Wear应用程序中断开连接,如何以编程方式“连接”安卓手表?
问题描述:
在Android Wear应用程序右上角的操作栏菜单顶部,我看到以下内容:“断开HUAWEI WATCH”(这是我用于测试的手表)。如果在Android Wear应用程序中断开连接,如何以编程方式“连接”安卓手表?
如果我选择这个项目的确,手表有点“断开” - 即使蓝牙一般打开并且设备在一般蓝牙设置中仍然被视为配对。最糟糕的是,如果手表已经离开手机很长时间,手表有时会在没有用户输入的情况下断开连接。
我的应用严重依赖蓝牙连接,最终用户很可能不会注意到手表“断开”的事实。他们只会假设应用程序是越野车。
因此,我的应用程序检测“断开连接的手表”状态至关重要。最好的办法是自动或在用户确认后重新连接手表。在最糟糕的情况下,可能会检测到该案例并要求用户去解决Android Wear
中的问题。
- 如何以编程方式检测手表是否已通过
Android Wear
菜单断开连接。 - 如何连接它。
这不是关于如何检测一般的蓝牙是否启用或禁用,现在也介绍如何配对蓝牙设备。我正在使用Data API和setUrgent()
。
答
我会建议使用
@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;
}
}
}
);
检索附近节点
我不知道你的代码。这就是为什么我只能说这么宽泛的建议。
不完整但可能会有所帮助。毫无疑问的提升,如果没有更好的东西会来接受。 – h22
@ h22,如果您提供更多代码,我会尽力帮助 – Vyacheslav
getConnectedNodes适用于我的情况。 onConnectionSuspended不被调用。 – h22