Android移动开发详解 第11章 Android传感器开发
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第11章 Android传感器开发
11.2 GPS应用
第11章 Android传感器开发
11.2.1 我的位置
➢ LocationManager
LocationManager为开发者提供了一系列方法来解决与GPS相关的问题,包括查询到上一个已知位置、注册或 注销来自某个 LocationProvider的周期性的位置更新,以及注册或注销在接近某个坐标时对一个已定义Intent的触发等 。
第11章 Android传感器开发
11.2.2 更新位置
➢ 位置检测更新与监听器实现
locationManager.requestLocationUpdates(provider, 0, 0, locationListener); private LocationListener locationListener = new LocationListener() {
第11章 Android传感器开发
11.1 传感器种类
➢GPS ➢动作传感器 ➢位置传感器 ➢环境传感器
第11章 Android传感器开发
11.1.1 GPS
➢GPS由三部分组成
(1) GPS卫星组成的空间部分 (2)若干地球站组成的控制部分 (3)普通用户手中的接收机
第11章 Android传感器开发
第11章 Android传感器开发
11.1.4 环境传感器
➢ Android中的环境传感器
Android平台提供了4个传感器,用于检测不同的外部环境。有以下四种: (1)湿度传感器,基于硬件的传感器,Android手机中少见。 (2)温度传感器,基于硬件的传感器,Android手机中少见。 (3)光线传感器,基于硬件的传感器,比较常见的传感器。 (4)压强传感器,基于硬件的传感器,Android手机中少见。
location = locationManager.getLastKnownLocation(provider); private void getBestProvider() {
第11章 Android传感器开发
11.1.3 位置传感器
➢ Android中的位置传感器
(1)磁场传感器,基于硬件的传感器,大多数Android手机和平板电脑都有磁场传感器。 (2)邻近传感器,基于硬件的传感器,通常在手机中较为常见,可以用该传感器测试接听电话时手机屏幕 离脸有多远,在贴近耳朵接听电话时完成某些工作。 (3)方向传感器,基于软件的传感器,该传感器的回传数据来自加速度传感器和磁场传感器。
11.1.1 GPS
➢ Android应用开发中的GPS
在Android应用开发中,程序员可以通过使用Android系统提供的LocationManager类及其他几个辅助类方便快 捷地开发出GPS应用。Android系统为GPS功能专门提供了一个LocationManager类,所有GPS定位相关的服务、对象都 由该对象来生成。程序通过调用Context的getSystemService()方法来获取该对象的实例。
location = locationManager.getLastKnownLocation(provider); } public void onProviderDisabled(String provider) { } }
第11章 Android传感器开发
11.2.2 更新位置
➢ 通过获取最佳Provider获取位置坐标(定位的关键):
Android传感器开发
第11章 Android传感器开发
11.1 传感器种类 11.2 GPS应用 11.3 Acceler发
11.4 Gyroscope传感器 11.5 Proximity传感器
第11章 Android传感器开发
11.1 传感器种类
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener); 这句代码告诉系统,我们需要从GPS获取位置信息,每隔1000ms更新一次,并且不考虑位置的变化。最后一个参 数是LocationListener的一个引用,必须要实现这个类。
LocationManager不允许直接实例化,需要下列代码获取:
LocationManager LM = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 得到了LocationManager的实例LocationManager以后,通过以下语句来注册一个周期性的位置更新:
第11章 Android传感器开发
11.1.2 动作传感器
➢ Android中的动作传感器
(1)加速传感器(TYPE_ACCELEROMETER),纯硬件传感器。 (2)陀螺仪传感器(TYPE_GYROSCOPE),纯硬件传感器。 (3)重力传感器,硬件传感器或软件传感器。 (4)线性加速传感器,硬件传感器或软件传感器。 (5)旋转向量传感器,硬件传感器或软件传感器。
第11章 Android传感器开发
11.1.2 动作传感器
➢ Android中的动作传感器
在一些Android设备中,这些基于软件的传感器会从加速传感器和磁场传感器中获取数据,但在另一些 Android设备中也可能从陀螺仪传感器中获取数据。也就是说,同一种基于软件的传感器在不同的Android设备中回传 的数据可能来自不同的硬件传感器。因此,基于软件的同一种传感器在不同设备中的精确度、使用范围有所不同。
public void onLocationChanged(Location location) { convertCoor(location); showLocation();}
public void onStatusChanged(String provider, int status, Bundle extras) { } public void onProviderEnabled(String provider) {