Монитор сердечного ритма на смарт-часах не запускается в методе onCreate
Я не думаю, что я полностью понимаю код, лежащий в основе мониторинга сердечного ритма. Я создал свой проект, и это код, который я использовал.
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 Status:: 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. Это происходит, когда я нажимаю кнопку Стоп.