android传感器高级,Android开发:Android设备传感器开发总结

public class SensorActivity extends Activity implements SensorEventListener {

private SensorManager mSensorManager;

private Sensor mSensor;

@Override

public final void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//第一步:通过getSystemService获得SensorManager实例对象

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

//第二步:通过SensorManager实例对象获得想要的传感器对象:参数决定获取哪个传感器

mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

}

//第四步:必须重写的两个方法:onAccuracyChanged,onSensorChanged

/**

* 传感器精度发生改变的回调接口

*/

@Override

public final void onAccuracyChanged(Sensor sensor, int accuracy) {

//TODO 在传感器精度发生改变时做些操作,accuracy为当前传感器精度

}

/**

* 传感器事件值改变时的回调接口:执行此方法的频率与注册传感器时的频率有关

*/

@Override

public final void onSensorChanged(SensorEvent event) {

// 大部分传感器会返回三个轴方向x,y,x的event值,值的意义因传感器而异

float x = event.values[0];

float y = event.values[1];

float z = event.values[2];

//TODO 利用获得的三个float传感器值做些操作

}

/**

* 第三步:在获得焦点时注册传感器并让本类实现SensorEventListener接口

*/

@Override

protected void onResume() {

super.onResume();

/*

*第一个参数:SensorEventListener接口的实例对象

*第二个参数:需要注册的传感器实例

*第三个参数:传感器获取传感器事件event值频率:

* SensorManager.SENSOR_DELAY_FASTEST = 0:对应0微秒的更新间隔,最快,1微秒 = 1 % 1000000秒

* SensorManager.SENSOR_DELAY_GAME = 1:对应20000微秒的更新间隔,游戏中常用

* SensorManager.SENSOR_DELAY_UI = 2:对应60000微秒的更新间隔

* SensorManager.SENSOR_DELAY_NORMAL = 3:对应200000微秒的更新间隔

* 键入自定义的int值x时:对应x微秒的更新间隔

*

*/

mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);

}

/**

* 第五步:在失去焦点时注销传感器

*/

@Override

protected void onPause() {

super.onPause();

mSensorManager.unregisterListener(this);

}

}

总结起来大致有5步:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值