2017-04-04 100 views
0

在Android Wear应用程序右上角的操作栏菜单顶部,我看到以下内容:“断开HUAWEI WATCH”(这是我用于测试的手表)。如果在Android Wear应用程序中断开连接,如何以编程方式“连接”安卓手表?

如果我选择这个项目的确,手表有点“断开” - 即使蓝牙一般打开并且设备在一般蓝牙设置中仍然被视为配对。最糟糕的是,如果手表已经离开手机很长时间,手表有时会在没有用户输入的情况下断开连接。

我的应用严重依赖蓝牙连接,最终用户很可能不会注意到手表“断开”的事实。他们只会假设应用程序是越野车。

因此,我的应用程序检测“断开连接的手表”状态至关重要。最好的办法是自动或在用户确认后重新连接手表。在最糟糕的情况下,可能会检测到该案例并要求用户去解决Android Wear中的问题。

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

这不是关于如何检测一般的蓝牙是否启用或禁用,现在也介绍如何配对蓝牙设备。我正在使用Data API和setUrgent()

回答

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

      ); 

检索附近节点

我不知道你的代码。这就是为什么我只能说这么宽泛的建议。

+0

不完整但可能会有所帮助。毫无疑问的提升,如果没有更好的东西会来接受。 – h22

+0

@ h22,如果您提供更多代码,我会尽力帮助 – Vyacheslav

+0

getConnectedNodes适用于我的情况。 onConnectionSuspended不被调用。 – h22