【问题标题】:Android wear os displays heart rate as 1 when trying it on the deviceAndroid Wear os 在设备上试用时显示心率为 1
【发布时间】:2020-05-16 07:45:13
【问题描述】:

我为 Wear os 制作了一个简单的应用程序,它在 textView 上显示心率。该应用程序运行完美,没有任何错误,但在显示值时它只显示 1。传感器可以与其他应用程序正常工作。

public class MainActivity extends WearableActivity implements SensorEventListener{

private TextView mTextView;
private TextView mTextViewHeart;
private SensorManager mSensorManager;
private Sensor mHeartRateSensor;

@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mTextView = findViewById(R.id.text);

    mTextViewHeart = findViewById(R.id.heart);

    // Enables Always-on
    setAmbientEnabled();
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    assert mSensorManager != null;
    mHeartRateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_BEAT);
}

public final void onAccuracyChanged(Sensor sensor, int accuracy) {
    // Do something here if sensor accuracy changes.
}

@SuppressLint("SetTextI18n")
public final void onSensorChanged(SensorEvent event) {
    float mHeartRateFloat = event.values[0];

    int mHeartRate = Math.round(mHeartRateFloat);

    mTextViewHeart.setText(Integer.toString(mHeartRate));
}

@Override
protected void onResume() {
    super.onResume();
    mSensorManager.registerListener(this, mHeartRateSensor, SensorManager.SENSOR_DELAY_NORMAL);
}

@Override
protected void onPause() {
    super.onPause();
    mSensorManager.unregisterListener(this);
}

【问题讨论】:

    标签: android wear-os heartrate


    【解决方案1】:

    这是所需的传感器类型吗?

    Sensor.TYPE_HEART_BEAT

    你可以考虑改成

    mHeartRateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      相关资源
      最近更新 更多