如何阅读Android Wear的心率 [英] How to read Heart rate from Android Wear

查看:107
本文介绍了如何阅读Android Wear的心率的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在那一刻读取用户的心率。我尝试在Wear项目的主要活动中使用此代码。

I need to read the heart rate of the user at that instant. I tried using this code located in my main activity in the Wear project.


public class MainActivity extends WearableActivity implements SensorEventListener {

    private static final String TAG = "MainActivity";
    private TextView mTextViewHeart;
    SensorManager mSensorManager;
    Sensor 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(Sensor sensor, int accuracy) {
        Log.d(TAG, "onAccuracyChanged - accuracy: " + accuracy);
    }

    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);
        }
        else
            Log.d(TAG, "Unknown sensor type");
    }

}

这段代码根本无效,给我一个错误说:

This code is simply not working, giving me an error saying:


E/SensorManager﹕ sensor or listener is null

如果我使用除心率传感器以外的任何其他物品,它可以正常工作。

It works fine if I use anything else but the heart rate sensor.

我正在使用:


  • LG G4与Android API等级23

  • LG Urbane手表(我知道它有一个心率传感器),带Wear API等级23

感谢您的帮助。

推荐答案

我遇到了同样的问题,你可以在这个问题中看到。我们有相同的磨损装置,所以我几乎可以肯定你错过了穿着AndroidManifest.xml的

I faced the same problem as you can see in this question. We have the same wear devices, so I'm almost sure that you have missed this on your wear AndroidManifest.xml:

<uses-permission android:name="android.permission.BODY_SENSORS" />

此外,您应该转到设置中的权限,以检查是否已启用该权限。

Also, your should go to Permissions in Settings in order to check if that permission is enabled.

您可以在 GitHub 上查看我的项目,现在正在工作。

You can check my project on GitHub, which is working for now.

这篇关于如何阅读Android Wear的心率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆