安卓方向传感器,android 方向传感器和电子罗盘

1 , android 方向传感器和电子罗盘不是同一个东西:方向传感器是用来获取重力感应的;电子罗盘是用来获取地磁场感应的;一般手机都会有方向传感器,但却不一定有电子罗盘;没有电子罗盘的手机无法定位方向……就是无法使用类似指南针的功能!~以上!【安卓方向传感器,android 方向传感器和电子罗盘】
2,android 如何判断手机是否有方向传感器说明一下,android 定义的传感器有十几种,但是很多手机支持大概 8种 。传感器类: sensor ,这个类定义了android传感器 , 其中包括传感器的特效描述和 定义了所有支持的传感器类型 。直接判断SensorManager sm是否为空,为空的话就是另一个图标不是为空就是一个图标,不过现在的手机一般都有方向传感器,这是基本的,三轴陀螺仪传感器就有可能会没有 , 像方向传感器和光线传感器、加速度传感器一般都会有的 。这些是基本智能手机的基本
3,android中方向传感器的最新使用时怎么定义的参考如下内容:安卓的传感器又可以分为基于硬件的和基于软件的 。基于硬件的传感器往往是通过物理组件去实现的,他们通常是通过去测量特殊环境的属性获取数据,比如:重力加速度、地磁场强度或方位角度的变化 。而基于软件的传感器并不依赖物理设备,尽管它们是模仿基于硬件的传感器的 。基于软件的传感器通常是通过一个或更多的硬件传感器获取数据,并且有时会调用虚拟传感器或人工传感器等等,线性加速度传感器和重力传感器就是基于软件传感器的例子 。下面通过官方的一张图看看安卓平台支持的所有传感器类型:这个不是?。改险朐诖衅骼锩嬉彩亲约焊萁嵌热タ刂频?。你的意思是两个手机在同一个方法,但是获得的角度是不一样的?
4 , android如何调用方向传感器跪求代码mSensorManager = (SensorManager) this.getSystemService(SENSOR_SERVICE);sListener = new SensoChangedListener();mSensorManager.registerListener(sListener,mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_NORMAL);}private class SensoChangedListener implements SensorEventListener @Overridepublic void onSensorChanged(SensorEvent event)float derection = event.values[0];if (mCompassView != null)mCompassView.setRotate(-derection);mDerectionText.setText(AngleL.getDerection(derection));}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) }}很简单,获取传感器服务,注册一个SensorEventListener 接口就行了 。我的代码里头的derection就是实时的方位角(也就是方向值) 。说明:其实不仅仅是距离传感器,其他的像重力传感器 , 光线传感器,都是一类 , 由传感器管理器(sensormanager)所管理,sensormanager msensormanager= (sensormanager) getsystemservice(sensor_service);sensor mproxsensor = msensormanager.getdefaultsensor(sensormanager.sensor_proximity);此处可能会返回null,就看你的手机支持不支持改传感器了 。你要获取的距离传感器,其他的传感器你只需要对getdefaultsensor()这个函数修改一下参数 , 具体参数请lz查阅相关的文档 。if any question,contact me :-)

    推荐阅读