我正在尝试访问三星Gear Live手表的心率监测器。该手表与4.4.4手机配对,工作正常。我正在关注官方的BasicSensorsApi示例。
我可以成功连接到以下范围的谷歌播放服务:
addScope(new Scope(Scopes.FITNESS_LOCATION_READ_WRITE))
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
.addScope(new Scope(Scopes.FITNESS_BODY_READ_WRITE))
但是,当我想列出所有可用的心率监测器时,我会收到一个空的DataSource
:列表
private void findFitnessDataSources() {
Fitness.SensorsApi.findDataSources(mGoogleApiClient, new DataSourcesRequest.Builder()
.setDataTypes(
DataType.TYPE_HEART_RATE_BPM)// At least one datatype must be specified.
.setDataSourceTypes(
DataSource.TYPE_RAW)// Specify whether data type is raw or derived.
.build())
.setResultCallback(new ResultCallback<DataSourcesResult>() {
@Override
public void onResult(DataSourcesResult dataSourcesResult) {
for (DataSource dataSource : dataSourcesResult.getDataSources()) {
if (dataSource.getDataType().equals(DataType.TYPE_HEART_RATE_BPM)
&& mListener == null) {
registerFitnessDataListener(dataSource,
DataType.TYPE_HEART_RATE_BPM);
}
}
}
});
如果我将DataType
更改为,例如,TYPE_STEP_COUNT_CUMULATIVE
或TYPE_LOCATION_SAMPLE
,则列表中将包含我的手机,这似乎是合乎逻辑的。
为什么手表没有被列为可用的DataSource
?
请注意:这不是的副本
- 从"传感器"Samsung Gear Live获取心率
- 如何在Android Wearable中访问心率传感器
因为我想通过最近发布的Google Fit API访问心跳数据。
我不认为在手表上启用调试模式是必要的,但我已经尝试过了。另外,我不认为添加BODY_SENSORS
权限是必要的,因为整个过程无论如何都是由Google Fit API管理的,但我也尝试过,但没有成功。
Samsung Gear Live手表不宣传自己是BLE心率监测器,因此不会通过正常的蓝牙低能API或基于其构建的Google Fit API提供心率数据。