0

サービスに を登録したいのですSENSOR_ACCELEROMETERが、nullexception であることが判明しました。以下は私のコードです。

 asensor = new AccerSensor(context);//the sensoreventlistener
 Log.i("wogua", "creating"+asensor.toString());
 manager.registerListener(asensor,manager.getDefaultSensor(SensorManager.SENSOR_ACCELEROMETER), SensorManager.SENSOR_DELAY_FASTEST);


 Exception:

Caused by: java.lang.NullPointerException::

    at com.wogua.mobileprotected.service.LostProtectService.onCreate(LostProtectService.java:36)

何が問題なのかわかりません。sensoreventlistener のインスタンスが null ではありません::::com.wogua.mobileprotected.sensor.AccerSensor@41bf3f20

どのようにこれを null にすることができますか?:::manager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);

4

2 に答える 2

1

これは私のために働く方法です:

    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

    if (mAccelerometer != null) {
        // Success! There's an accelerometer
        mSensorManager.registerListener(this, mAccelerometer,
                SensorManager.SENSOR_DELAY_FASTEST);
    } else {
        Toast.makeText(this, "This device doesnt support accelerometer",
                Toast.LENGTH_SHORT).show();
        stopSelf();
    }
于 2012-11-23T09:37:46.457 に答える
0

managerは初期化されていません。

于 2012-11-23T10:30:40.873 に答える