智能手表上的心率监测器无法以onCreate方法启动

时间:2018-08-02 18:41:48

标签: android wear-os android-sensors heartrate

我认为我不完全了解心率监测背后的代码。 我创建了我的项目,这就是我使用的代码。

   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有关。当我按下“停止”按钮时会发生这种情况。

0 个答案:

没有答案