加速度计在后台服务中转向

时间:2011-07-07 11:21:34

标签: android background accelerometer

我使用此链接http://blog.androgames.net/85/android-accelerometer-tutorial/来创建加速度计。但我希望这个加速度计在后台工作。所以我改变了这样的代码:

public class Accelerometer extends Service implements AccelerometerListener{
private static Context CONTEXT;

@Override
public IBinder onBind(Intent intent) {
// TODO Put your code here
return null;
}

@Override
public void onCreate() {
System.out.println(”start listening”);
// if (AccelerometerManager.isSupported()) {
AccelerometerManager.startListening(this);

// }
}

@Override
public void onDestroy() {
System.out.println(”start listening”);
// if (AccelerometerManager.isListening()) {
AccelerometerManager.stopListening();
// }
}

public static Context getContext() {
return CONTEXT;
}

/**
* onShake callback
*/
public void onShake(float force) {
Toast.makeText(this, “close” + force, 1000).show();
}

/**
* onAccelerationChanged callback
*/
public void onAccelerationChanged(float x, float y, float z) {
System.out.println(”x = “+x+” y = “+y+” z = “+z);
}

}

我得到了这个错误:

 Java.lang.runtimeexception : Unable to create service com.tam.Accelerometer: java.lang.NullPointerException
Caused by: java;lang.NullPointerException

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您需要将CONTEXT值指定为

CONTEXT = Accelerometer.this;
onCreate()方法

中的

答案 1 :(得分:0)

Android Accelerometer Sensor 如果是你,你已经发布了它并得到了答案?您需要设置CONTEXT

this.getApplicationContext()