我有一个Android应用程序,我想从任何已连接的Android手表(Wear OS,Tizen等)中读取心率。如果不开发可穿戴式应用程序,这是否可能?
我尝试在Sensor.TYPE_HEART_RATE
上注册一个侦听器,但是我没有看到出现的3款手表中的任何一款(Ticwatch E,Ticband和Gear S2)。我确保我请求Manifest.permission.BODY_SENSORS
权限。
sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager?
heartRateSensor = sensorManager?.getDefaultSensor(Sensor.TYPE_HEART_RATE)
val registered = sensorManager?.registerListener(this, heartRateSensor, SensorManager.SENSOR_DELAY_NORMAL)
Log.i(TAG, if (registered!!) "Registered Listener" else "Failed to register listener")
答案 0 :(得分:0)
基于这些帖子1和2,请确保您的应用程序已定义并授予了“人体传感器”权限。
验证:
<uses-permission android:name="android.permission.BODY_SENSORS"/>
出现在您的AndroidManifest.xml文件中
此外,通过检查手表上的“权限”设置,确保已授予该权限:“设置”->“权限”->“您的应用”
例如,您可以选中此GitHub link。
答案 1 :(得分:0)
我使用Android Wear手表,Samsung Gear S2,随机心率健身追踪器手表(Ticwatch)和独立的蓝牙心率臂带进行了一些研究。
重申我的目标是通过电话应用程序从手表的传感器读取心率数据,而无需制作手表应用程序。
我的发现如下:
我希望这可以阐明SensorManager仅适用于运行应用程序的设备上的传感器。