【问题标题】:GPS and NETWORK_PROVIDER not working on real deviceGPS 和 NETWORK_PROVIDER 无法在真实设备上运行
【发布时间】:2012-09-20 08:32:18
【问题描述】:

我尝试使用 NETWORK_PROVIDER 获取当前位置并注册

LocationListener:
locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0, locListener);

我在 AndroidManifest.xml 中添加了以下权限:

android.permission.ACCESS_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.INTERNET

onLocationChanged(Location location) 从未打过电话。

如果我尝试通过以下方式获取位置:

locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

那么它总是返回空位置。

我不知道我错在哪里。 任何帮助都应该感谢我。

【问题讨论】:

  • 您的手机是否启用了 GPS?
  • 是的,我的设备已启用 GPS。
  • onLocationChanged(Location location) 将在纬度和经度值更改时调用。因此,最好检查真实设备上的应用程序并将位置从一个位置更改为另一个位置(长距离移动以获得更好的效果)。
  • 我已经尝试过 Lenovo Ideatab,并将位置从一个位置更改为另一个位置,但如果我尝试使用 getLastKnownLocation() 返回空位置来获取位置,则不会调用 onLocationChanged(Location lcoation) 方法。
  • 我正在关注Android Location Provider教程:android10.org/index.php/articleslocationmaps/…

标签: android location


【解决方案1】:

您是否在 LocationManager 实例上执行了方法 requestLocationUpdates

【讨论】:

  • 是的,我已经按照以下方式执行了 requestLocationUpdates 方法 locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0, locListener);
【解决方案2】:

两个可能的原因: 1) 设备上未启用 GPS 2)您没有给它足够的时间来修复位置(我的设备最多可能需要 30 秒才能修复)。在得到修复之前,位置管理器将返回 null。同样,在它得到修复,然后设备移动并且设备得到第二次修复之前,它不会触发 'onLocationChanged' 事件

【讨论】:

  • GPS 已在我的设备上启用。我试图设置 60s 来获得一个位置,但没有调用 onLocationChanged()。 GPS 不是问题,因为我试图从 NETWORK_PROVIDER 获取位置。
  • 如果您使用谷歌地图(例如),是否能够在合理的时间内检索 GPS(或网络)定位?这至少可以确认您的 GPS 工作正常,并让您了解您的设备在当地条件下获得修复的速度有多快
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-21
  • 2014-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多