2016-09-18 21 views
0

我的應用一直工作正常,直到BIND_LISTENER棄用,我做了任何需要的更改,但我的應用無法正常工作。我從磨損中成功發送消息,但在手機端沒有任何事情發生。BIND_LISTENER棄用後無法收到郵件

我的磨損代碼(發件人):

private static final String WEARABLE_DATA_PATH = "/test/"; 

protected void sendMessageToHandheld(final String message) { 

    final PendingResult<NodeApi.GetConnectedNodesResult> nodes = Wearable.NodeApi.getConnectedNodes(googleApiClient); 
    nodes.setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() { 
     @Override 
     public void onResult(@NonNull NodeApi.GetConnectedNodesResult result) { 
      final List<Node> nodes = result.getNodes(); 
      if (nodes != null) { 
       for (int i = 0; i < nodes.size(); i++) { 
        final Node node = nodes.get(i); 
        Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), WEARABLE_DATA_PATH, message.getBytes()).setResultCallback(
          new ResultCallback() { 
           @Override 
           public void onResult(@NonNull Result sendMessageResult) { 
            if (!sendMessageResult.getStatus().isSuccess()) { 
             Log.i(TAG, "Failed to send message"); 
            } else{ 
             Log.d(TAG, "sendind message to handled: " + node.getDisplayName() 
               + " - id: " + node.getId() 
               + " - path: " + WEARABLE_DATA_PATH 
               + " - message: " + message); 
            } 
           } 
          } 
        ); 
       } 
      } 
     } 
    }); 
} 

在手機端的監聽器服務:

​​

}

我的電話清單:

<service 
     android:name=".wear_communication.DataLayerListenerService" 
     android:enabled="true" 
     android:exported="true"> 
     <intent-filter> 

      <action android:name="com.google.android.gms.wearable.DATA_CHANGED" /> 
      <action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" /> 
      <action android:name="com.google.android.gms.wearable.CAPABILITY_CHANGED" /> 
      <action android:name="com.google.android.gms.wearable.CHANNEL_EVENT" /> 

      <data 
       android:host="*" 
       android:pathPrefix="/test/" 
       android:scheme="wear" /> 
     </intent-filter> 
    </service> 

回答

0

Sending and Syncing Data

作爲Google Play服務一部分的可穿戴數據層API爲您的掌上電腦和可穿戴應用提供了通信渠道。該API由一組數據對象,該系統可以發送和同步上線,並與數據層通知你的重要事件應用聽衆:

  • 數據項
  • 消息
  • 資產
  • WearableListenerService(服務費)
  • 的DataListener(用於前臺活動)
  • 通道

有關於Data Layer eventsWearableListenerService以及標籤在清單中的更多信息。 Android Studio有一個guide,其中彙總瞭如何轉換爲新的API。 Android Wear示例還展示了使用WearableListenerService的最佳實踐,例如DataLayerXYZTouristAttractions。所需的變化非常小,可以從這裏的樣本git diff中看到。

下面是相關文檔和教程,可以幫助你穿戴式和手持設備的通信:

這些文件可以幫助你下站在如何將BIND_LISTENER替換爲新的細粒度意圖過濾器API。

希望這會有所幫助!

+0

我做了所有需要的事情(改變gradle,穿戴代碼,移動代碼,改變移動Manifest),但移動不會有磨損的結果穿着告訴我發送消息,但沒有任何反應在移動。一切似乎都很好,就像上面的代碼一樣。 我試過在移動類中放置onCreate(),並且logcat向我展示了該類被調用。 你知道會發生什麼嗎?還是缺少什​​麼? P.S:抱歉我的英語,即時巴西 –

相關問題