如何阅读Android Wear的心率
我需要在那一刻读取用户的心率。 我尝试在Wear项目的主要活动中使用此代码。
公共类MainActivity扩展WearableActivity实现SensorEventListener {private static final String TAG =“MainActivity”; private TextView mTextViewHeart; SensorManager mSensorManager; 传感器mHeartRateSensor; SensorEventListener sensorEventListener; @Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); 的setContentView(R.layout.activity_main); mTextViewHeart =(TextView)findViewById(R.id.heart); mSensorManager =((SensorManager)getSystemService(SENSOR_SERVICE)); mHeartRateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE); mSensorManager.registerListener(this,mHeartRateSensor,SensorManager.SENSOR_DELAY_NORMAL); Log.i(TAG,“LISTENER REGISTERED。”); mTextViewHeart.setText(“Something here”); mSensorManager.registerListener(sensorEventListener,mHeartRateSensor,mSensorManager.SENSOR_DELAY_FASTEST); public void onResume(){super.onResume(); } public void onAccuracyChanged(传感器传感器,int准确度){Log.d(TAG,“onAccuracyChanged - accuracy:”+ precision); public void onSensorChanged(SensorEvent event){if(event.sensor.getType()== Sensor.TYPE_HEART_RATE){String msg =“”+(int)event.values [0]; mTextViewHeart.setText(MSG); Log.d(TAG,msg); }其他Log.d(标签,“未知的传感器类型”); }}
这段代码根本不起作用,给我一个错误说:
E / SensorManager:传感器或侦听器为空
如果除了心率传感器之外还使用其他任何东西,它工作正常。
我在用:
- LG G4与Android API等级23
- LG Urbane手表(我知道它有一个心率传感器),带有Wear API等级23
感谢您的帮助。
我在这个问题上遇到了同样的问题。 我们有相同的磨损设备,所以我几乎可以肯定你在AndroidManifest.xml上错过了这个:
此外,您应该转到设置中的权限,以检查是否启用了该权限。
您可以在GitHub上查看我的项目,该项目目前正在运行。
实际上,您正在实现SensorEventListener接口并在不初始化的情况下创建了SensorEventListener的实例。
初始化传感器:
SensorEventListener sensorEventListener = new SensorEventListener(){ ... };
或删除它并使用“this”:
mSensorManager.registerListener(sensorEventListener, mHeartRateSensor, mSensorManager.SENSOR_DELAY_FASTEST);
将其更改为:
mSensorManager.registerListener(this, mHeartRateSensor, mSensorManager.SENSOR_DELAY_FASTEST);
不要忘记,从SDK 23开始,您必须分别在佩戴设备和手机上申请权限。 Wear应用程序不再inheritance手机应用程序的权限。
https://developer.android.com/training/articles/wear-permissions.html
权限事情现在已经把我抓了几次。 虽然我还没有实现代码来请求使用传感器的权限,但一个简单的解决方法是进入可穿戴设备的设置,然后选择权限并找到您的应用程序。 当您单击应用程序时,您会注意到传感器已禁用,因此只需单击它即可启用它们。 应该工作呢!