Java 如何访问Galaxy S5心率传感器?
在(第77-81页)中,有一个关于如何使用S Health Service SDK设置和获取心率信息的参考。然而,我希望直接访问Galaxy S5的心率传感器,就像访问加速计、陀螺仪、光传感器和其他传感器一样。 我找到了,但我找不到任何星系S5的例子 是否可以直接访问Galaxy S5的心率传感器?有没有人有关于如何做的代码示例Java 如何访问Galaxy S5心率传感器?,java,android,heartbeat,samsung-mobile-sdk,Java,Android,Heartbeat,Samsung Mobile Sdk,在(第77-81页)中,有一个关于如何使用S Health Service SDK设置和获取心率信息的参考。然而,我希望直接访问Galaxy S5的心率传感器,就像访问加速计、陀螺仪、光传感器和其他传感器一样。 我找到了,但我找不到任何星系S5的例子 是否可以直接访问Galaxy S5的心率传感器?有没有人有关于如何做的代码示例 谢谢。使用SensorManager.getDefaultSensor(65562)直接访问HRM传感器。三星发布了一个名为SensorExtension的SDK。你必
谢谢。使用SensorManager.getDefaultSensor(65562)直接访问HRM传感器。三星发布了一个名为SensorExtension的SDK。你必须申请,他们会给你发一封带有zip文件的电子邮件 效果很好 但是 此传感器需要权限android.permission.BODY\u传感器。信息技术 SensorManager不会返回。getSensorsList或 SensorManager.getDefaultSensor(如果应用程序没有此功能) 允许 (来自文件)
因此,如果您尝试getDefaultSensor但未成功,则可能是错误。您无法从三星Galaxy S5获取原始心率监视器数据 传感器扩展SDK需要从Google Android不支持的传感器获取原始数据,并声明: 传感器扩展SDK具有以下限制:
- HRM传感器红外/红色信号
- 需要具有Android 5.0(棒棒糖API级别21)或更高版本的设备
- 排除了星系S5和星系S5mini
- 仅支持带有HRM传感器的三星设备
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) {
}
这可能会帮助你:谢谢你的回答。我已经检查了该论坛线程,但它只提供了如何从S Health Service SDK获取心率信息的信息。我需要直接实时访问心率传感器,就像使用加速计、陀螺仪、光传感器和其他传感器一样。你链接的问题中的代码有什么输出?(显示所有传感器的那一个。)您是否按照建议包含了
BODY\u sensors
权限?我没有galaxy s5。我只是想知道galaxy gear使用的相同代码是否也可以用于访问galaxy s5心率传感器?谢谢。为什么你会期望它不起作用呢?
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) {
}