簡體   English   中英

通過Data API從移動設備發送的數據無法在Android Wear中接收?

[英]Data sent through Data API from mobile not received in android wear?

可穿戴式模擬器中的監聽器服務的ondatachange不會接收通過數據API從移動應用發送的數據。盡管如此,我仍可以發送通知,表明兩者均已連接。在我的代碼下方,

DataAPI調用(移動)

   PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(SharedConstants.START_FREE_RUN);
   putDataMapRequest.getDataMap().putString(SharedConstants.PROGRAM_TYPE,totalCountUpTimer);

    PutDataRequest request = putDataMapRequest.asPutDataRequest();
    Wearable.DataApi.putDataItem(mGoogleApiClient, request)
            .setResultCallback(new ResultCallback<DataApi.DataItemResult>() {
                @Override
                public void onResult(DataApi.DataItemResult dataItemResult) {
                    if (!dataItemResult.getStatus().isSuccess()) {
                        Log.e(TAG, "buildWatchOnlyNotification(): Failed to set the data, "
                                + "status: " + dataItemResult.getStatus().getStatusCode());
                    } else {
                        Log.d(TAG,"SuccessFully sent notification");
                    }
                }
            });

之后,我會收到“成功發送”日志消息。

下面是ListenerService的外觀,

  public class ListenerService extends WearableListenerService {

  private static final String TAG =   ListenerService.class.getSimpleName();
  @Override
  public void onDataChanged(DataEventBuffer dataEvents) {
     super.onDataChanged(dataEvents);
     Log.d(TAG, "dchanged" + dataEvents);

  }
  @Override
  public void onMessageReceived(MessageEvent messageEvent) {
     Log.v(TAG, "onMessageReceivedWear: " + messageEvent);

     if  (SharedConstants.START_FREE_RUN.equals(messageEvent.getPath())) {
        // Request for this device open the attraction detail screen
        // to a specific tourist attraction
        String Distance = new String(messageEvent.getData());
        Log.d("ListenerService",Distance);

     }
 }
 }

以及我在Android清單中的服務聲明,

    <service android:name=".services.ListenerService">
        <intent-filter>
            <action android:name="com.google.android.gms.wearable.DATA_CHANGED" />
            <action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" />
            <data android:scheme="wear" android:host="*" android:pathPrefix="*" />
       </intent-filter>
    </service>
  <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

未在可穿戴模塊中添加任何權限。建議。

使用android:pathPattern=".*"代替android:pathPrefix="*"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM