Google Play Services Location:获得最近的已知位置
来源:互联网 发布:rsc数据库 编辑:程序博客网 时间:2024/04/20 06:55
移动应用的一个独特的特点是定位功能。 移动用户会在任何地方都使用他们的设备,这样在你的应用程序添加定位功能会给用户提供了更多的情境体验。Google play services location置API可以很方便将位置感知与自动定位追踪,地理围栏和行为识别添加到您的应用程序中。
现在Google play services location API优于Android框架位置API( android.location )如添加位置感知到你的应用程序的方式。 如果你正在使用Android框架位置API,强烈建议您尽快切换到Google play services location API。
本课程向您展示了如何使用Google play services location API在你的应用程序来获取当前位置,获得周期性位置更新和查找地址。 该类包含示例应用程序和代码片段,可以作为一个起点用于添加位置感知到你的应用程序。
注:由于本类是Google play services location的客户端库,请确保您使用示例应用程序或代码段之前安装最新版本。 要了解如何设置客户机库的最新版本,请参阅安装在谷歌Play服务指南。
相关课程
获得最近的已知位置
了解如何检索Android设备,它通常等同于用户的当前位置的最后一个已知位置。
更改位置设置
了解如何检测和定位功能应用的系统设置。
接收位置更新
了解如何请求和接收周期性位置更新。
显示位置的地址
了解如何到一个位置的经纬度转换成一个地址(反向地理编码)。
创建和监测地理围栏
学习如何限定一个或多个地理区域的称为地理围栏的相关位置,并且当用户接近或地理栅栏内检测。
获得最近的已知位置
使用Google play services location API,应用程序可以请求设备的最后已知位置。 在大多数情况下,感兴趣的用户的当前位置,这通常是等效的设备的最后已知位置。
具体而言,使用混合位置提供方式检索设备的最后已知位置。 混合位置提供是Google play services location API之一。 它管理基本定位技术,并提供了一个简单的API,让你可以指定高级别的要求,如高准确度和低功耗。 它还优化设备的使用电池供电。
本课向您展示如何使用设备的位置,一个请求getLastLocation()的融合位置提供方法。
设置谷歌播放服务
要访问混合位置服务,您的应用程序的开发项目必须包括谷歌播放服务。 下载并通过安装谷歌播放服务组件SDK管理器和库添加到您的项目。 有关详细信息,请参阅该向导设置谷歌播放服务 。
指定应用权限
使用位置服务必须请求位置信息访问权限的应用程序。 Android提供了两个定位权限: ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION 。 您选择的权限决定了API返回的位置的精确度。 如果指定ACCESS_COARSE_LOCATION ,API返回,其精确度大约相当于一个街区的位置。
这节课只需要粗略的位置。 请求与此权限uses-permission在你的应用程序清单元素,如下面的代码片段显示:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.gms.location.sample.basiclocationsample" > <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/></manifest>
连接到谷歌播放服务
要连接到API,你需要创建谷歌Play服务API客户端的一个实例。 有关使用客户端的详细信息,请参阅指南访问谷歌的API 。
在您的活动的onCreate()方法中,创建谷歌API客户端的一个实例,使用GoogleApiClient.Builder类以添加LocationServices API,如下面的代码片段所示。
// Create an instance of GoogleAPIClient.if (mGoogleApiClient == null) { mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(LocationServices.API) .build();}
要连接,调用connect()从活动的onStart()方法。 要断开连接,通话disconnect()从活动的onStop()方法。 下面的代码片段展示了如何使用这两种方法的例子。
protected void onStart() { mGoogleApiClient.connect(); super.onStart();}protected void onStop() { mGoogleApiClient.disconnect(); super.onStop();}
获得最后的已知位置
一旦你连接到谷歌播放服务和位置服务API,你可以得到一个用户的设备的最后已知位置。 当您的应用程序连接到这些,你可以使用融合位置服务提供商的getLastLocation()方法来检索设备位置。 此调用返回的位置的精度由权限设置你把你的应用程序清单,如描述确定指定的应用权限。本文件的部分。
要请求最后已知的位置,调用getLastLocation()方法,向它传递的您的实例GoogleApiClient对象。 在执行此操作onConnected()由谷歌API客户端,当客户准备好这就是所谓提供的回调。 下面的代码片段说明了该请求,并简单处理的响应:
public class MainActivity extends ActionBarActivity implements ConnectionCallbacks, OnConnectionFailedListener { ... @Override public void onConnected(Bundle connectionHint) { mLastLocation = LocationServices.FusedLocationApi.getLastLocation( mGoogleApiClient); if (mLastLocation != null) { mLatitudeText.setText(String.valueOf(mLastLocation.getLatitude())); mLongitudeText.setText(String.valueOf(mLastLocation.getLongitude())); } }}
该getLastLocation()方法返回一个Location的对象,从中可以获取地理位置的经纬度坐标。 当位置不可返回的位置的对象可以是在极少数情况下为空。
下一课, 更改位置设置 ,告诉您如何检测当前的位置设置,并提示用户改变设置以适合您的应用程序的需求。
- Google Play Services Location:获得最近的已知位置
- Google Play Services Location:显示位置的地址
- Google Play Services Location:更改位置设置
- Google Play Services Location:接收位置更新
- 安卓定位Google+Google Play services location APIs
- Google Play services SDK的安装
- Google Play services SDK的安装
- Google Play Game Services
- Google Play Services
- Google Play Services学习
- Google Play services工程
- Google Play Services SDK
- Google Play Game Services LeaderBoard
- Android:Google Play Services 4.2
- 引用 google-play-services.jar
- Google Play Services 4.1 发布带来的新特性
- GoogleMap-------Google Play services SDK的下载和配置
- Android Google Services Framework & Google Play
- mclk、aclk
- ubuntu管理启动项
- Android学习第12天-----HOOK技术
- 博客第一天
- 跑马灯式的选择元素方法
- Google Play Services Location:获得最近的已知位置
- poj 1275 Cashier Employment
- Android开发之webview和 js 互调
- webstorm2016.2简单激活方法
- maven私服上传jar文件
- scp 远程拷贝时软链接的处理方法
- Permutations
- Spark 之DataFrame与RDD 转换
- shell常用命令-$用法