手机感应器,方向东南西北指南针,前后左右旋转角度。

手机传感器,方位东南西北,手机前后抬起角度,左右抬起角度。

首先实现SensorEventListener类,必须继承俩个方法,onAccuracyChanged(此方法不用管因为参数会一直随着手机改变)和onSensorChanged(这里面获取数据)。

@Override   
public void onAccuracyChanged(Sensor sensor, int accuracy) {   

 
}   
@Override   
public void onSensorChanged(SensorEvent event) {   
// 方向传感器提供三个数据,分别为azimuth、pitch和roll。   
// event.values[0]  azimuth:方位,返回水平时磁北极和Y轴的夹角,范围为0°至360°。   
// 0°=北,90°=东,180°=南,270°=西。   
 
// event.values[1] pitch:y轴和水平面的夹角,范围为-180°至180°。   。 
//手机放在桌面角度为0,然后前端或后端开始抬起,值会改变
  
// event.values[2] roll:x轴和水平面的夹角,由于历史原因,范围为-90°至90°。   
//手机放在桌面角度为0,然后左边或右边开始抬起值会改变
 
//手机方位,东南西北
double azimuth = event.values[0];
//手机前后翻转角度
double pitch = event.values[1];
//手机左右翻转角度
double roll = event.values[2]; 
}   
}  

然后再onCreate方法里面初始化注册传感器

private SensorManager sensorManager = null;   
private Sensor gyroSensor = null; 

//初始化注册手机传感器
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);   
gyroSensor = sensorManager   
.getDefaultSensor(Sensor.TYPE_ORIENTATION);  

这样就可以获取到了。

当然在onPause里面要解除监听状态

sensorManager.unregisterListener(this); // 解除监听器注册   

在onResume里面要重新注册 

sensorManager.registerListener(this, gyroSensor,   
SensorManager.SENSOR_DELAY_NORMAL); //为传感器注册监听器   

这样一个完整的手机传感器3个数据就可以获取到了,希望你学到了。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值