Google Play Services Location:获得最近的已知位置

翻译 2016年08月30日 11:08:09

移动应用的一个独特的特点是定位功能。 移动用户会在任何地方都使用他们的设备,这样在你的应用程序添加定位功能会给用户提供了更多的情境体验。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:更改位置设置

如果你的应用程序需要请求位置或可以得到位置更新通知的权限,设备需要启用相应的系统设置,如GPS或Wi-Fi扫描。 而不是直接使服务,如设备的GPS,你的应用程序指定精度/功耗和所需的更新间隔所需的水平...

Google Play Services Location:显示位置的地址

在前面的blog中讲述了怎样获取最后已知位置和接收位置更新后如何从location对象中获取用户的位置,包含经纬度的坐标。 虽然纬度和经度是用于计算距离或显示地图的位置,在许多情况下,位置的地址是更为...

Google Play Services Location:接收位置更新

如果应用程序可以连续跟踪定位,它可以提供更多的相关信息给用户。 例如,如果你的应用程序可以帮助用户找到自己的方式,如步行或开车,或者如果您的应用程序获知商店的位置,它需要定期来获得设备的位置。 以及地...

安卓定位Google+Google Play services location APIs

功能介绍:加载googleMap并知道定位到当前位置,当位置改变,定位的mark也随之改变public class MainActivity extends AppCompatActivity imp...

使用google play services lib时 提示需要更新版本

今天一到公司,就收到了鬼子的来信,说是之前发过去的程序定位太慢,而且经常超时。虽然我用的是Android原生的定位,但是我以为定位慢、定位不准等问题只有在天朝才会发生,没想到Japan也会有这种情况。...
  • jjxojm
  • jjxojm
  • 2014-11-18 22:12
  • 6416

Google Play services SDK的安装

(官方网站可参考 http://developer.android.com/google/play-services/setup.html)     2012年3月6日Google Market...

Google Play services and OAuth Identity Tools

Posted by Tim Bray     The rollout of Google Playservices to all Android2.2+ devices worldwide is n...

Android:Google Play services and OAuth Identity Tools

Google Play services and OAuth Identity Tools http://android-developers.blogspot.com/2012_09_01_arc...

google play services jar包

  • 2017-07-21 14:34
  • 11.49MB
  • 下载

google play services jar

  • 2014-06-05 14:15
  • 937KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)