指南针的分享

来源:互联网 发布:人工智能先驱 编辑:程序博客网 时间:2024/06/07 17:50
//定义成员的变量
privateTextView tv1;
privateMySensro mySensro;
privateButton but1;
privateSensorManagersystemService;

@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1= (TextView) findViewById(R.id.tv1);
//初始化控件
initview();
//通过服务拿到传感器经理.getSystemService(SENSOR_SERVICE),要强类型转换.
systemService= (SensorManager) getSystemService(SENSOR_SERVICE);
//通过传感器经理得到方向传感器的对象.getDefaultSensor 参数:3(也就是我给大家表的位置)
Sensor defaultSensor =systemService.getDefaultSensor(3);
//创建一个自己的传感器监听器
mySensro= newMySensro();
//注册传感器监听,registerListener,参数:1.传感器监听器 2.传感器对象 3.决定采样的敏感度.SensorManager.SENSOR_DELAY_NORMAL:正常采样
systemService.registerListener(mySensro,defaultSensor,SensorManager.SENSOR_DELAY_NORMAL);

}
//初始化的控件
private voidinitview() {
//找到控件
but1= (Button) findViewById(R.id.but);
//给button进行监听跳转
but1.setOnClickListener(newView.OnClickListener() {
@Override
public voidonClick(View v) {
Intent intent =newIntent(MainActivity.this, GuangchuanActivity.class);
startActivity(intent);
}
});
}

/**
* 自定义一个类实现SensorEventListener,做为传感器监听
*/
private classMySensro implementsSensorEventListener{
//当传感器数据变化的调用的方法
@Override
public voidonSensorChanged(SensorEvent event) {
//当传感器数据变化的调用的方法
//通过传感器事件,得到方向值(int).event.values[0]

floatvalue = event.values[0];
//提示:地磁北极和手机y轴的夹角, 0=北, 90=东, 180=南, 270=西
//当度数大于0且小于90为东北方向.使用if ,if else
// 当度数=0,90,180,270时,北东南西
if(value >0&& value<90) {
tv1.append("东北"+"\n");
}else if(value >90&& value<180) {
tv1.append("东南"+"\n");
}else if(value >180&& value<270) {
tv1.append("西南"+"\n");
}else if(value >270&& value<360) {
tv1.append("西北"+"\n");
}else if(value ==0) {
tv1.append("北"+"\n");
}else if(value ==90) {
tv1.append("西"+"\n");
}else if(value ==180) {
tv1.append("南"+"\n");
}else if(value ==270) {
tv1.append("北"+"\n");
}

}
//当传感器精度发生变化的时候调用的方法
@Override
public voidonAccuracyChanged(Sensor sensor,intaccuracy) {

}
}
/**
* 在Activity销毁的生命周期里,解除监听,释放资源.
*/
@Override
protected voidonDestroy() {
super.onDestroy();
//解除光传感器监听,unregisterListener参数监听器对象
systemService.unregisterListener(mySensro);
//把自己的传感器监听器=空
mySensro=null;
}
0 0
原创粉丝点击