我正在尝试设置一个在 WearOS 上运行的可穿戴应用程序(适用于华为 Watch 2),以将心率 (BPM) 持续提供到 Google Fit 帐户中,该帐户会被读入另一个智能手机应用程序中。
当我尝试设置帐户并访问数据时出现问题,如下所示:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (ContextCompat.checkSelfPermission(this, Manifest.permission.BODY_SENSORS)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.BODY_SENSORS),GOOGLE_FIT_PERMISSIONS_REQUEST_CODE)
}
fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_WRITE)
.build()
account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
GoogleSignIn.requestPermissions(
this, // your activity
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE, // e.g. 1
account,
fitnessOptions);
} else {
accessGoogleFit()
}
timer.scheduleAtFixedRate(
object : TimerTask() {
override fun run() {
Log.i("[TimerTask]", "Retrieving data..")
accessGoogleFit()
Log.i("[Account]", "" + account.email)
}
},0, 1000
) …Run Code Online (Sandbox Code Playgroud) 我正在努力显示与 Google Fit 应用程序相同的活动历史记录。我在会话方面做得很好,但我无法正确掌握自动记录的活动。就像示例中的这两个顶级步行。
我认为一切都归结DataReadRequest为建造的方式。我得到的最接近的是:
DataReadRequest.Builder()
.aggregate(DataType.TYPE_ACTIVITY_SEGMENT, DataType.AGGREGATE_ACTIVITY_SUMMARY)
.bucketByActivitySegment(5, TimeUnit.MINUTES)
.setTimeRange(dateFrom.millis, dateTo.millis, TimeUnit.MILLISECONDS)
.build()
Run Code Online (Sandbox Code Playgroud)
故意排除少于 5 次步行。结果相似,但结果略有不同。持续时间和大卡减少约 20%。有时它真的很疯狂,将活动切成小块。我在 Google Fit 中走了 2 次,最终在我的应用程序中走了 4 次,这与 Google Fit 中的 2 次不相加。我试图反编译 Google Fit 应用程序以“借用”请求设置,但该应用程序被很好地混淆了。:)
有人实现了吗?
我正在尝试使用 flutter 构建一个基本的健身应用程序。该应用程序有两个主要功能:
我使用计步器插件从手机传感器检索数据。我的问题是,该插件只能发送自上次重新启动以来的连续步数计数 ,这意味着如果用户几天没有打开我的应用程序,我不知道他每天走了多少步,只有他的总步数做过。我想过让我的应用程序在后台运行,但这会浪费电池
Ps 我阅读了Masky 的Implementing pedometer in flutter文章,但这并没有解决我的问题。
感谢您的任何帮助:)
我正在尝试使用Google Fit REST API检索每日心率汇总数据,但我很困难,因为要么我遗漏了某些内容,要么文档似乎非常不完整。我已经通过以下几个可用示例之一成功地检索了每日总步数:
请求网址
https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate
请求正文
{
"aggregateBy": [{
"dataTypeName": "com.google.step_count.delta",
"dataSourceId": "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
}],
"bucketByTime": { "durationMillis": 86400000 },
"startTimeMillis": 1438705622000,
"endTimeMillis": 1439310422000
}
Run Code Online (Sandbox Code Playgroud)
我找不到任何读取心率的示例,因此我尝试对其进行修改以获取心率。我发现这个数据类型列表具有以下数据类型:com.google.heart_rate.summary但没有任何关于dataSourceId应该是什么的信息。我尝试忽略它,但收到此错误:
找不到默认数据源:com.google.heart_rate.summary
有谁知道我需要使用什么 dataSourceId,或者有关于数据源的任何不错的文档的链接?