Google Service Location API需要互联网吗?

mFe*_*ein 8 android google-maps-android-api-2

我正在学习谷歌地图API V2,现在我正在阅读Location API,文件说它连接client到Service:

位置服务通过位置客户端将当前位置发送到您的应用程序,位置客户端是位置服务类LocationClient的实例.所有位置信息请求都通过此客户端.

这是否意味着谷歌将获得我的应用所在的所有职位?我知道如果已下载地图,Google地图可以在离线模式下工作,但位置服务是否仅在线运行?

我需要控制我的应用程序中的互联网流量,因此问题.

Sea*_*est 3

它的工作原理:

方式一:手机信号塔三角测量。(使用移动数据)

这种方式使用您的服务提供商网络连接来确定您所在的位置。返回的经度和纬度绝对不是最准确的,但是,它们的准确度为 10-15%(根据我的经验)。

下面是一段代码来说明这一点(直接从 Android 网站提取)

// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
      // Called when a new location is found by the network location provider.
      makeUseOfNewLocation(location);
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}

    public void onProviderEnabled(String provider) {}

    public void onProviderDisabled(String provider) {}
  };

// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
Run Code Online (Sandbox Code Playgroud)

方式二:Wi-Fi连接。必须在线。

这种方法比前一种方法准确得多。但缺点是您必须在线并连接到互联网。此方法使用与任何网络浏览器上的 JavaScript 版本的 Google 地图相同的理论。此方法返回的经度和纬度几乎是准确的。

方式三:GPS。(离线)

GPS 是最准确的,但它只能在户外工作,会很快消耗电池电量,并且不能像用户希望的那样快速返回位置。然而,GPS 不需要连接到互联网或移动数据。它通过向公共卫星发出请求来获取您的位置。

这是您需要的两个功能。getLatitude() 和 getLongitude()。

请记住,这都是有趣的事情。但谷歌地图API v2有一个简单的功能

mMap.setMyLocationEnabled(true);

它考虑了获取您位置的所有三种可能性。