在三星的编程指南(第 77 - 81 页)中,有关于如何使用 S Health Service SDK 设置和获取心率信息的参考。但是,我希望直接访问 Galaxy S5 的心率传感器,就像访问加速度计、陀螺仪、光传感器以及其他传感器一样。我找到了这个三星齿轮现场的例子,但我找不到 Galaxy S5 的任何例子。
是否可以直接访问 Galaxy S5 的心率传感器?有没有人有关于如何做到这一点的代码示例?
谢谢你。
在三星的编程指南(第 77 - 81 页)中,有关于如何使用 S Health Service SDK 设置和获取心率信息的参考。但是,我希望直接访问 Galaxy S5 的心率传感器,就像访问加速度计、陀螺仪、光传感器以及其他传感器一样。我找到了这个三星齿轮现场的例子,但我找不到 Galaxy S5 的任何例子。
是否可以直接访问 Galaxy S5 的心率传感器?有没有人有关于如何做到这一点的代码示例?
谢谢你。
用于SensorManager.getDefaultSensor(65562)
直接访问 HRM 传感器。
您无法从三星 Galaxy S5 获取原始心率监测数据。
传感器扩展 SDK 需要从不受 Google Android 支持的传感器获取原始数据,此页面指出:
Sensor Extension SDK 有以下限制:
要访问和启用红外线:
在清单中使用
使用权限 android:name="android.permission.BODY_SENSORS"/>
在 Activity 上实现 SensorEventListener
要启用红色红外灯使用代码:
public void enableHeartRate(){
SensorManager mSensorManager = ((SensorManager)getSystemService(SENSOR_SERVICE));
Sensor mHeartRateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
mSensorManager.registerListener(this,mHeartRateSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_HEART_RATE) {
String msg = "" + (int)event.values[0];
Log.d(TAG, msg);
}else{
Log.d(TAG, "Unknown sensor type");
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
检查日志以获取结果;)
三星发布了一个名为 SensorExtension 的 SDK。您必须申请,他们会向您发送一封包含 zip 文件的电子邮件。
SensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE)
效果很好。
但
此传感器需要权限 android.permission.BODY_SENSORS。如果应用程序没有此权限,则 SensorManager.getSensorsList 和 SensorManager.getDefaultSensor 都不会返回。
(来自文档)
因此,如果您的读者尝试getDefaultSensor没有成功,这很可能是错误。