有没有人成功读取了Moto 360的心率传感器?
mSensorManager = ((SensorManager)getSystemService(SENSOR_SERVICE));
mHeartRateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);我收到一个错误,指出“SensorManager:传感器或侦听器为空”
我知道Gear Live使用了不同于感应器的ID。the _HEART_RATE...我想知道Moto 360是不是这样。
我尝试了一个感应值为65538的感应器,它将自己报告为“健康感应器”,但似乎也没有返回数据。
任何建议都将不胜感激。
发布于 2014-10-12 15:10:12
我在我的Moto360上做了同样的事情,我得到了传感器和心率。是否设置了body数据的权限:
使用-权限android:name="android.permission.BODY_SENSORS“
在你的Manifest.xml里?
发布于 2015-04-19 22:12:40
当我试图从Moto 360轮询心率时,也遇到了同样的问题,传感器是空的。做了同样的事情,计算出可用的传感器是健康传感器:
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
if (sensor == null) {
List<Sensor> sensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
for (Sensor sensor1 : sensors) {
Log.i(TAG, sensor1.getName() + ": " + availableSensor.getType());
}
}65538似乎是正确的类型,所以我使用了它。
Wellness Passive Sensor 65538一位Reddit thread I found建议这是正确的路线。我似乎从它得到了读数,但它们并不可靠。
通过更多的研究,我发现了轮询传感器数据并显示它的an open source project。这似乎只在某些时候有效,所以我将传感器API视为不可靠,并暂时搁置了我的项目。如果我认为传感器API更可靠,我会在几个月后再次讨论这个问题,并更新我的答案。
发布于 2016-05-24 02:58:52
Sensor.TYPE_HEART_RATE实际上是正确的ID。我也遇到了同样的问题:即使我在清单中拥有BODY_SENSORS权限,传感器也是空的。我通过移除应用程序,重新启动手表,并在运行时请求BODY_SENSORS权限(参见https://developer.android.com/training/articles/wear-permissions.html)来修复它。在那之后,我得到了身体传感器许可的系统对话,然后我开始接收来自传感器的更新。我希望这能帮到你。
https://stackoverflow.com/questions/25820771
复制相似问题