android加速度传感器
来源:互联网 发布:全球网络推广 编辑:程序博客网 时间:2024/05/01 21:23
加速度传感器原理:加速度传感器数值可通过onSensorChanged(SensorEvent event)中event.values获得。返回的是float数组单位m/s^2。
加速度传感器的X轴沿着手机屏幕向右(手机左边在下,数值为正)。上面数组的第一个为传感器X轴的加速度值。
加速度传感器的Y轴沿着手机屏幕向上(手机下边在下,数值为正)。。上面数组的第二个为传感器Y轴的加速度值。
加速度传感器的Z轴垂直于手机屏幕向上(手机屏幕朝上,数值为正)。。上面数组的第三个为传感器Z轴的加速度值。
编程操作:1、通过(SensorManager)getSystemService(Context.SENSOR_SERVICE);返回传感器管理器sensormanager。
2、通过sensormanager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)返回加速度传感器对象。
3、在onResume()中注册加速度传感器监听器 sensormanager.registerListener(this,
sensormanager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME) 。
其中SensorManager.SENSOR_DELAY_GAME为传感器数据的频率SENSOR_DELAY_FASTEST、SENSOR_DELAY_GAME、SENSOR_DELAY_NORMAL、SENSOR_DELAY_UI依次频率减小,但资源消耗的更少。
4、在onStop()中取消注册sensormanager.unregisterListener(this)
5、通过onSensorChanged(SensorEvent event) 中event.values获得各个方向上加速度的值并做处理。
6、onAccuracyChanged(Sensor sensor, int accuracy)为传感器的精度发生改变时触发的事件。accuracy为 sensor改变后的精度。
参考代码:
public class SenorActivity extends Activity implements SensorEventListener {SensorManager sensormanager;EditText editText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_senor); editText=(EditText)findViewById(R.id.edit); sensormanager=(SensorManager)getSystemService(Context.SENSOR_SERVICE); } /* (non-Javadoc) * @see android.app.Activity#onResume() */@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();sensormanager.registerListener(this, sensormanager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);}/* (non-Javadoc) * @see android.app.Activity#onStop() */@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();sensormanager.unregisterListener(this);}@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_senor, menu); return true; }@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub}@Overridepublic void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stubfloat[] values=event.values;StringBuilder sb=new StringBuilder();sb.append("X方向上的加速度");sb.append(values[0]+"\n");sb.append("Y方向上的加速度");sb.append(values[1]+"\n");sb.append("z方向上的加速度");sb.append(values[2]+"\n");editText.setText(sb.toString());} }
- Android传感器之加速度传感器
- android加速度传感器
- Android加速度传感器
- android手机加速度传感器
- android光照、加速度传感器
- Android加速度传感器原理
- android 加速度传感器,重力传感器,线性加速度传感器
- Android 加速度传感器(G-Sensor)
- Android 加速度传感器(G-Sensor)
- android加速度传感器简单实现
- 自学Android之加速度传感器
- Android 加速度传感器的使用
- Android中使用加速度传感器
- android 传感器使用与开发----加速度传感器
- Android之传感器(二)加速度传感器
- Android传感器(二):加速度传感器
- Android传感器(五):线性加速度传感器
- 加速度传感器
- 如何处理海量数据
- 【数据结构】折半查找(二分查找)
- VS2012 中MFC的控件找不到了?
- 严重 Error starting endpointjava.lang.Exception Socket bind failed
- Hadoop集群作业调度算法
- android加速度传感器
- java的web开发分页工具类
- 删除Mshflexgrid控件所选记录---有感
- Asp.Net config 文件
- WAP Push SP接口协议
- ubuntu12.04 启用root登陆系统
- hdu 3514 dp + 单调队列优化
- wifi和GPRS下获取android的IP信息
- 由return语句不可返回指向“堆栈内存”的“指针”或者“引用”得出的知识点