13.Android学习之传感器与定位服务(三)

本文介绍了Android中获取和使用定位服务的详细步骤,包括LocationManager、LocationProvider和Location类的核心方法,以及如何获取LocationProvider和定位信息。示例代码展示了如何注册位置更新监听器并处理位置变化事件。
摘要由CSDN通过智能技术生成

目录

13.传感器与定位服务(三)

4.位置服务

4-1.获取LocationProvider

4-2.获取定位信息


13.传感器与定位服务(三)

4.位置服务

在开发Android 位置相关应用时,可以从GPS(全球定位系统)或者网络获得用户位置。通过GPS能获得最精确的信息。例如,在某些外卖软件的“选择收货地址”页面中,不仅定位了当前所在城市,而且附近地址也被列出;再如,某些天气软件能够自动定位当前所在城市。

对于开发Android应用的程序员来说,开发GPS功能的应用程序非常简单。在Android系统中,开发人员需要使用以下类访问定位服务。

◆LocationManager:该类提供系统定位服务访问功能。

LocationManager提供的常用方法如表13.4 所示。

表13.4 LocationManager 提供的常用方法

方法名 描述
List<String> getAllProviders 获取所有的LocationProvider列表
Location getLastKnownLocation(String provider) 根据LocationProvider获取最近一次已知的 Location
LocationProvider getProvider(String name) 根据名称来获取LocationProvider
void requestLocationUpdates (String provider, long minTime,float minDistance, PendingIntent intent) 通过指定的LocationProvider周期性地获取定位信息,并通过intent启动相应的组件
void requestLocationUpdates (String provider, long minTime,float minDistance, LocationListener listener) 通过指定的LocationProvider周期性地获取定位信息,并触发listener所对应的触发器

◆LocationProvider:定位组件的抽象表示,通过该类可以获取该定位组件的相关信息。

LocationProvider提供的常用方法如表13.5所示。

表13.5 LocationProvider 提供的常用方法

方法名 描述
int getAccuracy() 返回LocationProvider的精度
String getName() 返回LocationProvider的名称
int getPowerRequirement() 获取LocationProvider的电源需求

◆Location:该类表示特定时间的地理位置信息,位置由经度、纬度、UTC时间戳以及可选的高度、速度、方向等组成。

Location提供的常用方法如表13.6所示。

表13.6 Location 提供的常用方法

方法名 描述
float getAccuracy() 获取定位信息的精度
double getAltitude() 获取定位信息的高度
float getBearing() 获取定位信息的方向
double getLatitude() 获取定位信息的纬度
double getLongitude() 获取定位信息的经度
String getProvider() 获取提供该定位信息的LocationProvider
float getSpeed() 获取定位信息的速度

上面的3个类就是GPS定位支持的3个核心,使用它们获取GPS定位信息的一般步骤如下:

(1)获取系统的LocationManager对象。

(2)使用LocationManager,通过指定LocationProvider来获取定位信息,定位信息由Location对象来表示。

(3)从Location对象中获取定位信息。

4-1.获取LocationProvider

LocationProvider是位置源的意思,用来提供定位信息。在获取定位信息之前,需要先获得LocationProvider对象。常用的LocationProvider如表13.7所示。

表13.7 常用的 LocationProvider

方法名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值