锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

浅谈Android重力感应

时间:2022-08-17 19:00:02 442感应开关传感器感应开关061感应传感器

重力感应也是智能机和非智能机的区别之一,Android这个功能自然可以在设备中找到。

在Android需要使用重力感应功能SensorEventListener,有两种方法,

onSensorChanged和onAccuracyChanged,一般都是在onSensorChanged做一些希望在方法中达到的效果(羞耻

羞愧,刚接触到这种重力感应,所以对这两种方法了解不多)。重力感应是一种感应方式,所以我们必须使用感应检测包Sensor。

首先,我们必须得到一个SensorManager,SensorManager manager =

(SensorManager)

this.getSystemService(Context.SENSOR_SERVICE)。然后,通过这个manager来获得一个Sensor

的列表,Listsensors =

manager.getSensorList(Sensor.TYPE_ACCELEROMETER)。

Sensor.TYPE_ACCELEROMETER指加速度感应检测,当然还有其他一些感应检测,这里就不用说了。

当我做重力感应时,我使用它manager.registerListener(listener, sensor, rate),这边的sensor就是sensors中的一个Sensor,rate指延迟时间。

如果要取消这种重力感应,manager.unregisterListener(listener)取消注册。

public class SensorEventDemoActivity extends Activity implements SensorEventListener{

private Listsensors;

private Sensor sensor;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

@Override

protected void onResume() {

super.onResume();

SensorManager manager = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);

sensors = manager.getSensorList(Sensor.TYPE_ACCELEROMETER);

sensor = sensors.get(0);

manager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_GAME);

}

@Override

public void onSensorChanged(SensorEvent event) {

Log.d("Sensor Demo", "do sensor");

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

}

其实代码很简单,主要看如何在实际项目中使用。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章