有没有人成功读过Moto 360的心率传感器?
mSensorManager = ((SensorManager)getSystemService(SENSOR_SERVICE));
mHeartRateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
我收到一条错误消息,指出“SensorManager:传感器或监听器为空”
我知道Gear Live使用了除Sensor.TYPE_HEART_RATE之外的其他ID ...我想知道Moto 360是否属于这种情况。
我尝试了一个65538的传感器值,它将自己报告为“健康传感器”,但似乎也没有返回数据。
任何建议都将不胜感激。
答案 0 :(得分:1)
我在Moto 360上做同样的事情,我得到了传感器和心率。您是否已获得身体数据的许可:
uses-permission android:name =" android.permission.BODY_SENSORS"
你的Manifest.xml中的?
答案 1 :(得分:1)
我在尝试从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更可靠,我会在几个月内再次重新审视这个问题并更新我的答案。
答案 2 :(得分:1)
Sensor.TYPE_HEART_RATE实际上是正确的ID。我有同样的问题:即使我在清单中有BODY_SENSORS权限,传感器也是null。我通过删除应用程序,重新启动监视并在运行时请求BODY_SENSORS权限来修复它(请参阅https://developer.android.com/training/articles/wear-permissions.html)。 之后,我获得了身体传感器权限的系统对话,然后我开始接收来自传感器的更新。 我希望这会有所帮助。
答案 3 :(得分:1)
在确保清单中为BODY_SENSORS设置权限的同时,请确保在安装应用程序后启用了权限:
https://support.google.com/androidwear/answer/6321353?hl=en
这个让我有一段时间......
答案 4 :(得分:0)
我和Moto360有同样的问题,以及我如何解决它。
我尝试了所有列出的解决方案 - 重新安装应用程序,升级SDK但它对我有用。我在Manifest文件中包含了body传感器的权限。我在可用传感器列表中看不到心率传感器。所以我认为这是一个权限问题。 API 23以后android使用新的权限模型。
从此链接:https://developer.android.com/training/articles/wear-permissions.html它说 - “注意:对于使用新权限模型的应用程序,它必须为uses-sdk-element和compileSdkVersion指定值23。”
我更改了我的gradel脚本以使用minsdk和compliledsdk作为23.还添加了以下我的应用程序最明显。
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="23"
/>
现在它的工作!!
答案 5 :(得分:0)
从Android M,您需要确保用户在first time the applications runs启用权限或手动启用应用权限并启用它