如何阅读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

权限事情现在已经把我抓了几次。 虽然我还没有实现代码来请求使用传感器的权限,但一个简单的解决方法是进入可穿戴设备的设置,然后选择权限并找到您的应用程序。 当您单击应用程序时,您会注意到传感器已禁用,因此只需单击它即可启用它们。 应该工作呢!