我需要在那一刻读取用户的心率.我尝试在Wear项目的主要活动中使用此代码.
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");
}
}
这段代码根本不起作用,给我一个错误说:
E/SensorManager? sensor or listener is null
如果我使用除心率传感器以外的任何其他东西,它工作正常.
我在用:
谢谢您的帮助.
我遇到了与您在此问题中看到的相同的问题。我们有相同的穿戴设备,所以我几乎可以肯定您在穿戴 AndroidManifest.xml 时错过了这个:
<uses-permission android:name="android.permission.BODY_SENSORS" />
Run Code Online (Sandbox Code Playgroud)
此外,您应该转到“设置”中的“权限”以检查该权限是否已启用。
您可以在GitHub 上查看我的项目,该项目目前正在运行。
| 归档时间: |
|
| 查看次数: |
10817 次 |
| 最近记录: |