Java 阅读Android wear上的每日步数

Java 阅读Android wear上的每日步数,java,android,Java,Android,我想用一些信息写一个表面。现在我想阅读每日步数 我尝试了以下代码: Calendar start; start = Calendar.getInstance(); start.setTimeInMillis(System.currentTimeMillis()); start.set(Calendar.MILLISECOND, 0); start.set(Calendar.SECOND, 0); s

我想用一些信息写一个表面。现在我想阅读每日步数

我尝试了以下代码:

        Calendar start;

        start = Calendar.getInstance();
        start.setTimeInMillis(System.currentTimeMillis());
        start.set(Calendar.MILLISECOND, 0);
        start.set(Calendar.SECOND, 0);
        start.set(Calendar.MINUTE, 0);
        start.set(Calendar.HOUR_OF_DAY, 0);

        try
        {
          GoogleSignInOptionsExtension fitnessOptions =
                  FitnessOptions.builder()
                          .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
                          .build();

          GoogleSignInAccount googleSignInAccount =
                  GoogleSignIn.getAccountForExtension(getApplicationContext(), fitnessOptions);

          Task<DataReadResponse> response = Fitness.getHistoryClient(getApplicationContext(), googleSignInAccount)
                  .readData(new DataReadRequest.Builder()
                          .read(DataType.TYPE_STEP_COUNT_DELTA)
                          .setTimeRange(start.getTimeInMillis(), System.currentTimeMillis(), TimeUnit.MILLISECONDS)
                          .build());

          DataReadResponse readDataResult = Tasks.await(response);
          DataSet dataSet = readDataResult.getDataSet(DataType.TYPE_STEP_COUNT_DELTA);
          total = dataSet.isEmpty()
                  ? 0
                  : dataSet.getDataPoints().get(0).getValue(Field.FIELD_STEPS).asInt();
        }
        catch(ExecutionException e)
        {
          e.printStackTrace();
        }
        catch(InterruptedException e)
        {
          e.printStackTrace();
        }
第284行是DataReadResponse readDataResult=Tasks.wait(response)
为什么Fitness.CLIENT不可用?我怎样才能使它可用?
我真的不知道我能做些什么来获得每天的步骤。。。我找到了许多用于此目的的代码示例,但都不起作用

有人能帮我吗

非常感谢

Luca

相关:我的应用程序中没有活动。。。我正在写一个WatchFace,所以我让我的类扩展了CanvasWatchFaceService…你试过最新的watch OS吗?@Harsh:没有,我只试过我的SmartWatch…;)安卓6。我无法升级手表。。。我也尝试了Fitness.HistoryApi.readDailyTotal(GoogleAppClient,DataType.TYPE\u STEP\u COUNT\u DELTA),但是我在读取结果时遇到了一个超时。等待(1,TimeUnit.SECONDS)您确信您使用的帐户对此有效吗?(我不熟悉API,但是否应该有允许此应用访问此数据的权限?)
05-10 21:47:28.045  4273  4273 D PilotWatch: Heart rate: 0
05-10 21:47:28.135  4273  4902 W System.err: java.util.concurrent.ExecutionException: com.google.android.gms.common.api.ApiException: 17: API: Fitness.CLIENT is not available on this device. Connection failed with: ConnectionResult{statusCode=INVALID_ACCOUNT, resolution=null, message=null}
05-10 21:47:28.135  4273  4902 W System.err:    at com.google.android.gms.tasks.Tasks.zza(com.google.android.gms:play-services-tasks@@17.0.2:69)
05-10 21:47:28.135  4273  4902 W System.err:    at com.google.android.gms.tasks.Tasks.await(com.google.android.gms:play-services-tasks@@17.0.2:23)
05-10 21:47:28.135  4273  4902 W System.err:    at de.lucabert.pilotwatch.PilotWatch$Engine$DailyStepTask.doInBackground(PilotWatch.java:284)
05-10 21:47:28.135  4273  4902 W System.err:    at de.lucabert.pilotwatch.PilotWatch$Engine$DailyStepTask.doInBackground(PilotWatch.java:252)
05-10 21:47:28.135  4273  4902 W System.err:    at android.os.AsyncTask$2.call(AsyncTask.java:295)
05-10 21:47:28.135  4273  4902 W System.err:    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-10 21:47:28.135  4273  4902 W System.err:    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
05-10 21:47:28.135  4273  4902 W System.err:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-10 21:47:28.135  4273  4902 W System.err:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-10 21:47:28.135  4273  4902 W System.err:    at java.lang.Thread.run(Thread.java:818)
05-10 21:47:28.135  4273  4902 W System.err: Caused by: com.google.android.gms.common.api.ApiException: 17: API: Fitness.CLIENT is not available on this device. Connection failed with: ConnectionResult{statusCode=INVALID_ACCOUNT, resolution=null, message=null}
05-10 21:47:28.136  4273  4902 W System.err:    at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@17.2.1:4)
05-10 21:47:28.136  4273  4902 W System.err:    at com.google.android.gms.common.internal.zaj.zaf(com.google.android.gms:play-services-base@@17.2.1:2)
05-10 21:47:28.136  4273  4902 W System.err:    at com.google.android.gms.common.internal.zai.onComplete(com.google.android.gms:play-services-base@@17.2.1:6)
05-10 21:47:28.136  4273  4902 W System.err:    at com.google.android.gms.common.api.internal.BasePendingResult.zaa(com.google.android.gms:play-services-base@@17.2.1:176)
05-10 21:47:28.136  4273  4902 W System.err:    at com.google.android.gms.common.api.internal.BasePendingResult.setResult(com.google.android.gms:play-services-base@@17.2.1:135)
05-10 21:47:28.136  4273  490