2017-04-04 41 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