![Android智能穿戴设备开发实战详解](https://wfqqreader-1252317822.image.myqcloud.com/cover/166/31729166/b_31729166.jpg)
5.4 在穿戴设备中实现GPS定位
在本节的内容中将通过具体实例来演示在Android穿戴设备中使用地图系统的基本流程。
![](https://epubservercos.yuewen.com/850D74/17180246404476806/epubprivate/OEBPS/Images/img00125004.jpg?sign=1738882401-4ynTZ83uNVWpFWiHHOQf4VqoXRXgATjb-0-c25e10dea4c18cb8589b413f1d27172b)
本实例的具体实现流程如下所示。
(1)在文件AndroidManifest.xml中添加ACCESS_FINE_LOCATION权限,具体代码如下所示。
![](https://epubservercos.yuewen.com/850D74/17180246404476806/epubprivate/OEBPS/Images/img00125005.jpg?sign=1738882401-d9mEw99OCwwMhNaVRw7ZLWRbByv6S1gX-0-32a86e0fa76a76f7423aec64462d04a0)
(2)在onCreate(Bundle savedInstanceState)中获取当前位置信息,具体代码如下所示。
![](https://epubservercos.yuewen.com/850D74/17180246404476806/epubprivate/OEBPS/Images/img00125006.jpg?sign=1738882401-NLwOODtGxs6puKU8K9M79E53pXmcE0L0-0-0d16dbbb84b7f5578e16176747a34955)
![](https://epubservercos.yuewen.com/850D74/17180246404476806/epubprivate/OEBPS/Images/img00126001.jpg?sign=1738882401-WYL8rltACsv6EUu1kmhA6zGfcV8f6K51-0-6c82e39e70569bed6655200ad472b1f1)
在上述代码中,LocationManager用于周期获得当前设备的一个类。要想获取LocationManager实例,必须调用Context.getSystemService()方法并传入服务名LOCATION_SERVICE("location")。创建LocationManager实例后,即可通过调用getLast-KnownLocation()方法将上一次LocationManager获得有效位置信息以Location对象的形式返回。getLastKnownLocation()方法需要传入一个字符串参数来确定使用定位服务类型,本实例传入的是静态常量LocationManager.GPS_PROVIDER,这表示使用GPS技术定位。最后还需要使用Location对象将位置信息以文本方式显示到用户界面。
(3)定义方法updateWithNewLocation(Location location)来更新显示用户界面,具体代码如下所示。
![](https://epubservercos.yuewen.com/850D74/17180246404476806/epubprivate/OEBPS/Images/img00126002.jpg?sign=1738882401-7pMn2es2reLH90LhX5iSfILVPGLMQJT9-0-ef7954a1bcf9c32857a354b9fe8d3db0)
(4)定义LocationListener对象locationListener,当坐标改变时触发此函数。如果Provider传进相同的坐标,它就不会被触发。具体代码如下所示。
![](https://epubservercos.yuewen.com/850D74/17180246404476806/epubprivate/OEBPS/Images/img00126003.jpg?sign=1738882401-6CFZAZHC3yXD2iteniUnHMdSZAGCTVJl-0-68d64bf507db1e3c19512f0917b3c977)
下面开始测试,因为模拟器上没有GPS设备,所以需要在Eclipse的DDMS工具中提供模拟的GPS数据。即依次单击【DDMS】|【Emulator Control】,在弹出对话框中找到“Location Control”选项,在此输入坐标,完成后单击“Send”按钮,如图5-6所示。
![](https://epubservercos.yuewen.com/850D74/17180246404476806/epubprivate/OEBPS/Images/img00127001.jpg?sign=1738882401-TTDJxJRJsNfGgN7UwqmEMUxCSg7XA11M-0-e8eb8b9949a74a945140e739b02b0291)
图5-6 设置坐标
因为用到了Google API,所以要在项目中引入Google API,右击项目选择“Properties”,在弹出对话框中选择Google API版本,如图5-7所示。
![](https://epubservercos.yuewen.com/850D74/17180246404476806/epubprivate/OEBPS/Images/img00127002.jpg?sign=1738882401-HW6j4QWWThcBn3qOxFeLLZOFlhDWCeWY-0-482cf8fca189db4571f5dc9f4cebb560)
图5-7 引用Google API
模拟器运行后会显示当前的坐标,如图5-8所示。
![](https://epubservercos.yuewen.com/850D74/17180246404476806/epubprivate/OEBPS/Images/img00127003.jpg?sign=1738882401-x73vzU17TcvzxZkQdfRiZWl1h8DtAYCh-0-1c8b22d382dce0a54a72f26e892e62e9)
图5-8 执行效果