我正在开发适用于Android的应用程序(仅适用于智能手机,而不适合佩戴),我希望使用智能手表(华为手表f.e.)中的googleApiClient
(Google Fit)获取心率。我尝试使用传感器API ,但在 Google Fit API 中,“穿着”未列为DataSource
。
REQUEST_INTERVAL = 5;
Fitness.SensorsApi.findDataSources(client, new DataSourcesRequest.Builder()
.setDataTypes(DataType.TYPE_LOCATION_SAMPLE,
DataType.TYPE_STEP_COUNT_CUMULATIVE,
DataType.TYPE_DISTANCE_DELTA,
DataType.TYPE_HEART_RATE_BPM)
.setDataSourceTypes(DataSource.TYPE_RAW, DataSource.TYPE_DERIVED)
.build())
.setResultCallback(new ResultCallback<DataSourcesResult>() {
@Override
public void onResult(DataSourcesResult dataSourcesResult) {
for (DataSource dataSource : dataSourcesResult.getDataSources()) {
// There isn't heart rate source here
final DataType dataType = dataSource.getDataType();
Fitness.SensorsApi.add(client,
new SensorRequest.Builder()
.setDataSource(dataSource)
.setDataType(dataType)
.setSamplingRate(REQUEST_INTERVAL, TimeUnit.SECONDS)
.build(),
listener)
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
...
}
});
}
}
}
});
Othrer数据(如步数,位置和距离)来了。 我的客户:
googleApiClient = new GoogleApiClient.Builder(activity)
.addApi(Plus.API)
.addApi(Fitness.RECORDING_API)
.addApi(Fitness.HISTORY_API)
.addApi(Fitness.SENSORS_API)
.addApi(LocationServices.API)
.addApi(Fitness.BLE_API)
.addScope(Plus.SCOPE_PLUS_LOGIN)
.addScope(Plus.SCOPE_PLUS_PROFILE)
.addScope(new Scope(Scopes.PROFILE))
.addScope(new Scope(Scopes.PLUS_LOGIN))
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
.addScope(new Scope(Scopes.FITNESS_BODY_READ))
.addScope(new Scope(Scopes.FITNESS_LOCATION_READ))
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
我花了几个小时阅读文档和答案,但无法找到解决方案。也许我做错了什么。智能手机的数据来了,但从磨损来看并不是。 Google适合穿着。
感谢您的回答!
答案 0 :(得分:-1)
如documentation中所述:
Google Fit支持移动设备上的传感器和与设备配对的蓝牙低功耗传感器。 Google Fit允许开发人员实施对其他传感器的支持,并将其作为Android应用中的软件传感器公开。 Google Fit支持的传感器可作为数据源对象用于Android应用。
您可以使用DataSource.getDevice
方法获取有关数据源设备的信息。设备信息可用于区分不同设备上的类似传感器,显示从传感器到用户的设备信息,或根据设备不同地处理数据。 例如,您可能有兴趣在可穿戴设备上专门从传感器读取数据,但不能从手机上相同类型的传感器读取数据。
您可以查看此相关的SO主题:Android: How to get Google Fit data from Wearable device?