Google Fit 监听数据更新不工作
Google Fit Listen for Data Updates not working
当数据更新到 Google Fit 服务时,我正在尝试实施 Google Fit Listener。
在这个link of Google Fit documentation中有一个简单的例子,但是并不是100%清楚。因此,我有两个问题:
- 我不知道如何实现
mResultCallback
变量(本文档中没有任何示例)。
- 当我定义一个简单的
ResultCallback
(它似乎有效但我不确定)并启动该应用程序时,它给我一个结果错误代码:java.lang.SecurityException: 签名校验失败
mResultCallback 是一个 ResultCallback,因此您需要实现该类型的 class。文档是 here,但您只需要实现一种方法:
public abstract void onResult (Status result)
标准方法是在声明 mResultCallback 或将其用作参数时使用匿名 class 来执行此操作。下面是来自 Google 的 BasicRecordingAPI 示例的示例:
Fitness.RecordingApi.subscribe(mClient, DataType.TYPE_ACTIVITY_SAMPLE)
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
if (status.getStatusCode()
== FitnessStatusCodes.SUCCESS_ALREADY_SUBSCRIBED) {
Log.i(TAG, "Existing subscription for activity detected.");
} else {
Log.i(TAG, "Successfully subscribed!");
}
} else {
Log.i(TAG, "There was a problem subscribing.");
}
}
});
如果你想使用成员变量,你可以简单地进行赋值:
ResultCallback<Status> mResultCallback = new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
...
}
});
当然你可以定义一个非匿名的 class,但是如果你对每个回调都这样做,你最终会创建很多 classes。
HistortyApi 中的代码列出了 android.permission.ACCESS_FINE_LOCATION 或 android.permission.BODY_SENSORS 之一。
将这些权限添加到我的代码并没有解决同样的问题。
已确认 Google 适合服务中的错误。请参阅 https://plus.google.com/110141422948118561903/posts/Lqri4LVR7cD
中的讨论
当数据更新到 Google Fit 服务时,我正在尝试实施 Google Fit Listener。
在这个link of Google Fit documentation中有一个简单的例子,但是并不是100%清楚。因此,我有两个问题:
- 我不知道如何实现
mResultCallback
变量(本文档中没有任何示例)。 - 当我定义一个简单的
ResultCallback
(它似乎有效但我不确定)并启动该应用程序时,它给我一个结果错误代码:java.lang.SecurityException: 签名校验失败
mResultCallback 是一个 ResultCallback
public abstract void onResult (Status result)
标准方法是在声明 mResultCallback 或将其用作参数时使用匿名 class 来执行此操作。下面是来自 Google 的 BasicRecordingAPI 示例的示例:
Fitness.RecordingApi.subscribe(mClient, DataType.TYPE_ACTIVITY_SAMPLE)
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
if (status.getStatusCode()
== FitnessStatusCodes.SUCCESS_ALREADY_SUBSCRIBED) {
Log.i(TAG, "Existing subscription for activity detected.");
} else {
Log.i(TAG, "Successfully subscribed!");
}
} else {
Log.i(TAG, "There was a problem subscribing.");
}
}
});
如果你想使用成员变量,你可以简单地进行赋值:
ResultCallback<Status> mResultCallback = new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
...
}
});
当然你可以定义一个非匿名的 class,但是如果你对每个回调都这样做,你最终会创建很多 classes。
HistortyApi 中的代码列出了 android.permission.ACCESS_FINE_LOCATION 或 android.permission.BODY_SENSORS 之一。
将这些权限添加到我的代码并没有解决同样的问题。
已确认 Google 适合服务中的错误。请参阅 https://plus.google.com/110141422948118561903/posts/Lqri4LVR7cD
中的讨论