我认为我不完全了解心率监测背后的代码。 我创建了我的项目,这就是我使用的代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Enables Always-on
setAmbientEnabled();
mMobvoiApiClient = new MobvoiApiClient.Builder(this)
.addApi(Wearable.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mSensorManager =
(SensorManager)getSystemService(SENSOR_SERVICE);
mHeartRate = mSensorManager.getDefaultSensor(
Sensor.TYPE_HEART_RATE);
}
我在此处连接到客户端,并在此处获取默认传感器,并将其声明为TYPE_HEART_RATE。
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mHeartRate,
SensorManager.SENSOR_DELAY_NORMAL);
}
在onResume方法中,我注册了侦听器。
public void onSensorChanged(SensorEvent sensorEvent) {
Log.d("Test", "Got the heart rate (beats per minute) : " +
String.valueOf(sensorEvent.values[0]));
}
因此,此方法将在每次传感器数据正确更改时生成日志?如果我错了,请纠正我。
我的主要问题是应该调用哪种方法,或者应该使用哪种监听器来激活手表上的心率传感器。我显然错过了一些重要的东西,但不知道是什么。首先,我只想激活心率监视器以开始从中获取数据。
谢谢您的回答。
编辑:我已经在AndroidManifest文件中拥有了使用权限。
<uses-permission android:name="android.permission.BODY_SENSORS" />
编辑2:
我尝试添加两个按钮,一个用于注册侦听器,另一个用于取消注册。当我尝试使用startMeasure()
方法进行注册时,布尔值始终返回Sensor状态:传感器已注册:否
public void OnClickBtn(View v){
startMeasure();
}
public void OnClickBtnStop (View v){
stopMeasure();
}
private void startMeasure() {
boolean sensorRegistered = mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_FASTEST);
Log.d("Sensor Status:", " Sensor registered: " + (sensorRegistered ? "yes" : "no"));
}
private void stopMeasure() {
mSensorManager.unregisterListener(this);
}
它与我的布局是这样的
<Button
android:id="@+id/utrip"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="60dp"
android:background="@color/blue"
android:onClick="OnClickBtn"
android:text="@string/start" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="100dp"
android:background="@color/dark_red"
android:text="@string/stop"
android:onClick="OnClickBtnStop"/>
我也是从logcat那里得到的。
sphal namespace is not configured for this process.
我认为这与API有关。当我按下“停止”按钮时会发生这种情况。