1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android下的重力感应应用

Android下的重力感应应用

时间:2018-09-17 18:44:22

相关推荐

Android下的重力感应应用

android手机支持重力感应,针对Android的通过如下接口支持:

android.hardware.SensorEventListener

该接口有两个方法需要实现:

@Override

public void onSensorChanged(SensorEvent e) {

view.handleMoving(e.values[SensorManager.DATA_X]);

}

@Override

public void onAccuracyChanged(Sensor s, int accuracy) {

....

}

实现该接口比较容易,可以将对应的Activity实现该接口,在onSensorChanged方法中添加需要感应重力变化的处理代码即可。

还有一点,为了使重力感应生效需要增加如下处理逻辑

1:在Activity创建后,使重力感应生效

2:在Activity终止时,使重力感应失效

参考类似代码如下:

private SensorManager mSensorManager;

private Sensor mSensor;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

enableSensor();

}

@Override

public void finish() {

// 注销重力感应监听

disableSensor();

super.finish();

}

private void enableSensor(){

mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

// 注册重力感应监听

mSensorManager.registerListener(this, mSensor,

SensorManager.SENSOR_DELAY_GAME);

}

public void disableSensor(){

mSensorManager.unregisterListener(this, mSensor);

}

获取系统重力感应的方法:

public static void getSystemGravity(Context context) {try {int systemGravity = Settings.System.getInt(context.getContentResolver(),Settings.System.ACCELEROMETER_ROTATION);if (0 == systemGravity) {Constant.g_isGravity = false;} else {Constant.g_isGravity = true;}} catch (SettingNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}

设置系统是否开启重力感应:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。