2012-11-23 44 views
0

我想注册一个服务SENSOR_ACCELEROMETER,但它原来是一个nullexception.Following是我的代码:例外与SENSOR_ACCELEROMETER

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实例is not null :::: [email protected]

这怎么可能是空的,::: manager =(SensorManager)context.getSystemService(Context.SENSOR_SERVICE);

+0

是什么getDefaultSensor()返回更多? –

+0

light,accerlerometer,PROXIMITY and LINEAR_ACCELERATION – honeypig

回答

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(); 
    } 
+0

ok,让我检查一下,是否mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);为空或不是 – honeypig

0

manager没有初始化,比不清楚的话