我为 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);
}