如何获取设备位置

鲍勃

因此,我正在尝试构建一个用于练习的天气应用,并且遇到了尝试获取位置的问题。我读过有人建议通过融合的位置API使用getLastLocation,这是问题所在,如果他们尚未在设备上注册位置,则显示为null。我已经注意到使用仿真器的时间很少出现,但是我仍然希望我的应用能够正确处理它。您可能会遇到这种情况的一种情况是,它们只是关闭了GPS并重新打开,或者只是刚刚打开了手机。我所做的一件事是,如果getLastLocation确实返回空值,则是请求更新,但是您仍然必须等待设备注册更新的位置,而对于天气预报应用,所有数据均基于该位置,并且您仍然有点遇到同样的问题。一世' 注意到其他应用程序不是问题,例如有时我实际上必须加载Google Maps才能注册位置。Google Maps如何强制其更新位置?这是我的getLocation方法的示例:

public void getLocation() throws SecurityException {
    boolean gps_enabled;
    LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
    gps_enabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
    if (gps_enabled) {

        Location location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
        if (location != null) {
            startGetForecast(location);
        } else {
            LocationRequest request = LocationRequest.create();
            request.setNumUpdates(1);
            request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
            LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, request, this);
        }
    } 
    else {
        AlertDialogFragment alertDialogFragment = new AlertDialogFragment();
        alertDialogFragment.setErrorTexts("Location Unavailable", "Could not retrieve location information.", "Exit");
        alertDialogFragment.show(getSupportFragmentManager(), "Location Unavailable");
    }
}
Maytham-ɯɐɥʇʎɐɯ

注意:这个答案听起来好像不是直接回答问题,而是在与OP聊天(有问题的评论)之后,因为他的代码总体上还可以,但是围绕问题的条件,这个答案已经满足了OP。

幸运的是,标准库并不是Google掌握代码的唯一途径。除了标准库外,Google提供程序还提供Play服务。这是与Google Play商店应用程序一起安装的一组常见服务。为了解决此位置混乱的问题,Google在Play服务中提供了一个新的位置服务,称为融合位置提供程序。

由于这些库位于另一个应用程序中,因此您实际上必须安装该应用程序。这意味着只有安装了Play商店应用程序且最新的设备才能使用您的应用程序。

因此,结论是:

  1. 您需要如上所述在设备上测试该应用。
  2. 由于您使用的是Fused Location Provider Api,这意味着Api将自动从以下来源之一确定最后的位置:

    1. GPS收音机
    2. 来自手机信号塔的粗点
    3. WiFi连接
  3. 因此,如果您的代码中有条件,则可以轻松删除GPS

  4. 请注意,如果必须使用GPS信号,则需要位于建筑物,实验室,家庭或办公室之外。

如果您想挖掘更多内容,请在上述资源中找到更多信息,并且有很多在线资源。

资源:答案的第一部分,其来源来自:

Android编程:Google Play服务下的Big Nerd Ranch Guide
2nd Edition
第31章552页

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章