java - 在 Android Wear 上阅读每日步数
问题描述
我正在尝试用一些信息写一个表盘。现在我想阅读每日步数...
我试过这段代码:
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();
}
编译时没有错误,没有关于模拟器的信息,但是当我尝试在我的 SmartWatch 上运行它时,我得到了这个异常:
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
第 284 行是 DataReadResponse readDataResult = Tasks.await(response);
为什么 Fitness.CLIENT 不可用?我怎样才能使它可用?
我真的不知道我能做些什么来获得日常步骤......我为此目的找到了许多代码示例,但没有任何效果......
有人能帮我吗?
非常感
谢卢卡
解决方案
推荐阅读
- bootstrap-4 - Angular Bootstrap 按钮大小
- javascript - Firebase 推送通知 click_action
- c# - 创建空文件夹结构的最简洁方法
- android - how to retrieve data from fire base and assign to a string
- php - 如何在 wordpress 中添加/更改页脚作为插件功能?
- c# - 将属性从基类复制到派生类,而无需在 C# 中使用反射手动映射
- javascript - 如何从 JSON 数据中向右或向左对齐表格数据并为 HTML 表格中的任何行着色
- javascript - jQuery - 将元素数组附加到一个类并让它显示在 DOM 上
- python - Matplotlib 3D 绘图顺序的解决方法
- go - &http.Client 在 Golang 中,需要说明