【问题标题】:Android get location from GPSAndroid 从 GPS 获取位置
【发布时间】:2015-05-17 04:08:43
【问题描述】:

我的情况是,用户整天都带着平板电脑,它的 gps 或位置可以一直关闭以节省电池,然后想使用我的应用程序发布需要他们的东西打开位置,然后在发布后我想获取设备的 latitudelongitude。当我得到 locationnull 时,使用 LocationManager。任何帮助将不胜感激。

我正在使用下面的代码来获取位置:

LocationManager lm = (LocationManager)ctx.getSystemService(Context.LOCATION_SERVICE); 
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

正如我检查过的那样,似乎我必须放置一个监听器来更新设备位置,所以当我获得最后一个已知位置时它不会为空,但是如果设备的位置关闭,我该怎么做在使用应用程序之前?我想获取用户使用应用程序发布的位置。

EDIT:我已将代码更改为以下,但 loc 始终为 null 并且 loc2 始终返回位置。这是为什么呢?

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
Location loc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Location loc2 = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

这是监听器:

LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {

    }

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

    }

    public void onProviderEnabled(String provider) {

    }

    public void onProviderDisabled(String provider) {

    }
};

【问题讨论】:

    标签: android gps locationmanager


    【解决方案1】:

    您可能需要考虑使用网络位置以及 GPS 位置,因为许多用户只是关闭 GPS 无线电以节省电池电量。 将定位服务设置为“省电”模式后,设备可以使用 Wi-Fi(如果可用)获取准确的地理位置数据。
    如果您使用网络位置数据和 GPS 无线电数据,您将有更好的机会在需要时获取位置数据。

    但是,如果位置服务在打开之前被完全禁用以便使用您的应用发布内容,那么您需要注册位置侦听器以获取位置数据的第一个实例。

    查看这篇文章,了解如何同时使用网络和 GPS 定位: Android Location Manager, Get GPS location ,if no GPS then get to Network Provider location

    【讨论】:

    • 谢谢丹尼尔,在我的例子中,用户是访客,访问商店,所以他们知道系统是如何工作的,设备用于这种情况,他们使用 3G 发送数据,所以基本上 wi- fi 不在桌面上,但 3g 应该在发布时可用。
    • 丹尼尔请检查我的编辑
    【解决方案2】:

    GPS 很少在室内工作。如果您的用户正在“逛商店”,那么 GPS 提供商将永远不会返回有效位置是有道理的,因为室内没有可用的 GPS 信号。

    网络提供商同时使用 Wifi 和手机信号塔,因此只要它们至少有手机服务,您就应该返回一个位置。这就解释了为什么您始终能够通过网络提供商检索位置更新。

    我建议您查看Fused Provider,它是 Google 发布的最新位置 API。此 API 将根据用户启用的设置以及根据用户情况提供最佳数据的提供商,自动为您处理 GPS、网络和被动位置侦听器之间的切换。

    【讨论】:

    • 谢谢 ori-k,我已经使用 GPS 和 NETWORK 实现了系统,尽管大多数时候只有网络才能正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 2016-07-30
    • 2016-09-19
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多