在商店版本中未触发可穿戴DataListener回调

时间:2017-07-04 23:33:30

标签: android wear-os android-wear-data-api

几个月前我实现了兼容1.x的表盘(2.x即将推出)。该应用程序已经在真实设备上与调试版本进行了全面测试,再加上模拟器,以及第一代moto 360。一切都像魅力一样。两个设备都来回通信,应用程序已准备好部署。我使用发布版本进行了最后一轮测试,安装在真实设备上:一切都很好,该应用程序已准备好发布!

我在商店推出了一个alpha版本,供少数alpha测试人员使用。这里出现了问题:手机不再与手表正常交互了。更具体地说:数据是从手机发送的,但在这种特定情况下似乎没有调用手表侧的onDataChanged回调。我真的不明白,因为当我在我的测试设备上手动安装时,发布版本完全正常工作。

发送数据(电话方):

  public static void putConfigDataItem(GoogleApiClient googleApiClient, final DataMap newConfig) {
      PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(DataLayerKeys.PATH_WITH_FEATURE);
      putDataMapRequest.setUrgent();
      DataMap configToPut = putDataMapRequest.getDataMap();
      configToPut.putAll(newConfig);
      Wearable.DataApi.putDataItem(googleApiClient, putDataMapRequest.asPutDataRequest()).setResultCallback(new   ResultCallback<DataApi.DataItemResult>() {
           @Override
           public void onResult(@NonNull DataApi.DataItemResult dataItemResult) {
               Timber.d("putDataItem result status: " + dataItemResult.getStatus());
           }
     });
  }

应该在这里接收数据(观看侧),但不能正常工作:

public class HaikuService extends CanvasWatchFaceService {

  @Override
  public Engine onCreateEngine() {
    return new HaikuEngine();
  }

  private class HaikuEngine extends Engine implements DataApi.DataListener,
        GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {

        private final GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(HaikuService.this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Wearable.API)
            .build();

         //...

         @Override // DataApi.DataListener
         public void onDataChanged(DataEventBuffer dataEvents) {
         //... not called
         }

         //...
  }
}

注意:磨损和移动模块具有相同的applicationId。

Wearable.DataApi.putDataItem从手机到手表不起作用,但Wearable.MessageApi.sendMessage实际上正在工作。我正在使用它在手机和手表之间来回通信,以便在第一次启动时授予位置许可,并且一切都按预期工作。

我一直在互联网上找不到任何东西。也许我错过了一些非常明显的东西..我在这个问题上花了好几天没办法找出答案。我将永远感谢能够帮助我或提供任何提示的任何人。

0 个答案:

没有答案