簡體   English   中英

注冊傳感器偵聽器時,Android Wear應用程序崩潰

[英]Android Wear App Crashes when Register a Sensor Listener

我正在嘗試為Android Wear創建一個計步器應用程序。 我的問題是當我注冊傳感器偵聽器時

protected void onResume() {

    super.onResume();

    mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_FASTEST);

}

應用程序崩潰,但是如果我刪除了該應用程序上方的代碼,但是詛咒傳感器偵聽器不起作用,那么如何使它起作用,這是代碼

public class WearMainActivity extends Activity implements SensorEventListener {

private SensorManager mSensorManager;
private Sensor mStepDetectorSensor;
TextView stepNum;
int steps = 12;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_wear_main);
    final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
    stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
        @Override
        public void onLayoutInflated(WatchViewStub stub) {
            stepNum = (TextView) findViewById((R.id.stepNum));

            mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
            mStepDetectorSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);




        }
    });






}

protected void onResume() {

    super.onResume();

    mSensorManager.registerListener(this, mStepDetectorSensor, SensorManager.SENSOR_DELAY_FASTEST);

}


@Override
public void onSensorChanged(SensorEvent event) {

    if (event.sensor.getType() == Sensor.TYPE_STEP_DETECTOR) {

        stepNum.setText(String.valueOf(steps));
    }

}


public void onAccuracyChanged(Sensor sensor, int accuracy) {

}


protected void onStop() {
    super.onStop();
    mSensorManager.unregisterListener(this,mStepDetectorSensor);
}

}

您應該在onResume方法中聲明這兩個變量:

protected void onResume() {
    super.onResume();
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    mStepDetectorSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
    mSensorManager.registerListener(this, mStepDetectorSensor, SensorManager.SENSOR_DELAY_FASTEST);

}

並在onPause中注銷傳感器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM