我需要能够在我的一个场景类中实现SensorEventListener,但是要设置,似乎传感器必须使用这样的代码的活动类:
SensorManager sensorManager = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
即使我在活动课中做过,我也需要在场景课中使用加速度计。有没有办法做到这一点?
答案 0 :(得分:2)
您可以通过创建类实现SensorEventListener
来实现此目的,例如:
public class MySensor implements SensorEventListener {
Context context;
public InputAccelerometerEx(Context context) {
this.context = context;
SensorManager manager =
(SensorManager)context.getSystemService( Context.SENSOR_SERVICE );
Sensor accel = manager.getDefaultSensor( Sensor.TYPE_ACCELEROMETER );
manager.registerListener( this, accel, SensorManager.SENSOR_DELAY_GAME );
}
public void onSensorChanged(SensorEvent event) {
// respond to sensor changes here :)
}
// implement remaining sensor methods here..
}
现在只需在活动的onCreate()
中创建一个类的实例,例如:
public class MyActivity extends Activity {
MySensor sensor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
sensor = new MySensor( this );
}
}
当然这只是示例,您可以简单地将SensorEventListener
的实现添加到场景类中,并在您的活动中创建该实例,而不是使用单独的类。