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

关于高德地图问题总结 (三)位置传感器的使用

时间:2023-06-02 07:37:00 vetor温度传感器humidity传感器

在第一篇文章中,我们介绍了高德定位的使用,并在初始化中设置了定位变化更新,但高德地图更新为3秒,效果不明显

设置代码为

option.setSensorEnable(true);

然后我开始靠近系统自带的传感器。我发现目前不建议使用方向传感器,但我别无选择,只能将就一下。以下是使用过程的总结,仅供参考

1.监听器的类型

1.方向传感器(Orientation sensor)

2.加速传感器(Accelerometer sensor)

3.陀螺仪传感器(Gyroscope sensor)

4.磁场传感器(Magnetic field sensor)

5.距离传感器(Proximity sensor)

6.光传感器(Light sensor)

7.气压传感器(Pressure sensor)

8.温度传感器(Temperature sensor)

9.重力传感器(Gravity sensor,Android 2.3引入)

10.线性加速传感器(Linear acceleration sensor ,Android 2.3引入)

11.旋转矢量传感器(Rotation vector sensor,Android 2.3引入)

12.相对湿度传感器(Relative humidity sensor,Android 4.0引入)

13.近场通信(NFC)传感器(Android 2.3引入),NFC与其他不同,它具有读写功能。

2.传感器在初始化方法中的初始化

//传感器对象 private SensorManager sm;   获取SensorManager实例 sm = (SensorManager) getSystemService(SENSOR_SERVICE);  设置监控回调方法
/**  *第一个参数:SensorEventListener接口的实例对象  *第二个参数:需要注册的传感器实例  *第三个参数:传感器获取传感器事件event值频率:  *              SensorManager.SENSOR_DELAY_FASTEST = 0:对应0微秒的更新间隔,最快,1微秒 = 1 % 1000000秒  *              SensorManager.SENSOR_DELAY_GAME = 1:对应20000微秒的更新间隔,游戏中常用  *              SensorManager.SENSOR_DELAY_UI = 2.6万微秒对应的更新间隔  *              SensorManager.SENSOR_DELAY_NORMAL = 3.2万微秒对应的更新间隔  *              输入自定义int值x:相应x微秒的更新间隔  *  */ sm.registerListener(MainActivity.this,sm.getDefaultSensor(Sensor.TYPE_ORIENTATION),         SensorManager.SENSOR_DELAY_FASTEST);

3、实现 SensorEventListener的监听方法onAccuracyChanged()和onSensorChanged();

private float currentDegree = 0f; /**  * @description 方向传感器报告新值(方向变化)  * @param event  */ @Override public void onSensorChanged(SensorEvent event) {     if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {         float degree = event.values[0];       /*       RotateAnimation类别:旋转动画类别       参数说明:       fromDegrees:旋转的开始角。       toDegrees:旋转结束角。       toDegrees:旋转结束角。       pivotXType:X轴的伸缩模式可以取值ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。       pivotXValue:X坐标伸缩值。       pivotYType:Y轴的伸缩模式可以取值ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。       pivotYValue:Y坐标伸缩值       */       if(currentDegree != degree){           RotateAnimation ra = new RotateAnimation(currentDegree, degree,                   Animation.RELATIVE_TO_SELF, 0.5f,                   Animation.RELATIVE_TO_SELF, 0.5f);           ////旋转过程持续时间           ra.setDuration(300);           currentDegree = degree;           if (mapview != null) {               if (myLng != null) {               if (myLng != 0 && myLat != 0) {                   mapview.setLocationPoint(myLng, myLat, ra,0);               }           }       }     } }  @Override public void onAccuracyChanged(Sensor sensor, int accuracy) {  }

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

相关文章