【问题标题】:Cannot get current location until connected to the internet - Android GPS在连接到互联网之前无法获取当前位置 - Android GPS
【发布时间】:2013-10-09 10:58:27
【问题描述】:

我的问题标题是不言自明的。 当我想获得当前位置时,第一次(手机启动后),我必须连接到互联网。 获得一次位置后,我的应用程序不再需要互联网连接,并且更新发生得很好。 起初我以为我的代码中缺少某些东西,但我尝试了内置地图应用程序,但在我启用数据传输之前它也无法获取我的位置。

这对我来说似乎很奇怪,如果我在获得第一个坐标后可以在没有网络连接的情况下获得坐标,为什么我首先需要它?

所以我想知道两件事, 1 - 有没有办法让我在没有连接的情况下获得我的第一个位置 和 2 - 如果没有解决方法,要求用户启用它是否可行?我不是 100% 的,但我很确定我不能以编程方式启用数据。

想听听您的意见。 谢谢:)

【问题讨论】:

  • 如果您没有连接到互联网,您打算如何获取设备的位置?
  • 在这里查看我的答案:stackoverflow.com/a/19175359/1318946
  • 必须启用 WiFi 或 GPS 才能获取当前位置。您可以要求用户使用简单的 AlertDialog 启用他的 GPS,并使用 startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS)) 引导他进入设置屏幕;
  • @kjurkovic - 我的 GPS 已启用
  • @Razgriz 在我获得第一个坐标后它就可以工作,然后我可以完全依靠 GPS 传感器但是第一次更新我需要有互联网连接

标签: android gps location


【解决方案1】:

Android 设备使用所谓的 aGPS - a 代表辅助。我所看到的最基本的解释是,必须下载某些信息并确定一个一般的、广泛的位置,以便让 GPS 传感器知道在哪里寻找卫星。一旦有了信息,它就可以找到GPS卫星,就可以了。恐怕您的应用无法绕过这个事实。

【讨论】:

  • 非常感谢,这正是我想知道的,在你看来,对我来说最好的方法是什么,我应该把用户带到设置页面,还是让他知道需要打开数据,还是像标准地图应用一样不做任何事情?
  • 我不相信。 AGps 仅用于更快的首次修复。 GPS在没有互联网的情况下工作。然后它需要 45 秒而不是 15 秒。那么,如果您没有互联网但 GPS 已启用,您确定 android 将永远无法获得位置吗? GPS 是为在任何地方工作而设计的,尤其是在沙漠或树林等不可能有其他方向的地方。在那里你将无法访问互联网。我认为他没有启用 GPS(针对该应用)
  • 如果没有辅助数据,从卫星获取信息需要 12.5 分钟(gps 卫星以每秒 50 位(不是千位或兆位)传输数据。此外,如果该信号与卫星被打断(这可能就像被高楼挡住一样简单 - 不需要太多),它会把所有东西都扔掉并重新开始。所以如果你不在城里并且在户外,最好的情况是12.5分钟获得第一把锁。考虑到智能手机的移动性和典型使用区域,这几乎可以说没有数据就无法工作
  • 12.5 分钟的参考资料在维基百科上:en.wikipedia.org/wiki/Assisted_GPS#Basic_concepts
【解决方案2】:

你在AndroidManifest.xml中定义了<uses-permission android:name="android.permission.INTERNET" />

如果是,请检查您的互联网连接:

或者

在这里查看我的答案:Get current latitude and longtitude

【讨论】:

  • 我有非常相似的代码,唯一的区别是如果 GPS 没有得到我的位置,我不会回退到 NETWORK_PROVIDER,你认为这会有帮助吗?我不想使用网络,但我需要更高的精度,所以只有从网络获取第一个坐标,然后使用 GPS 才能工作。顺便说一句,对于网络提供商,您需要数据连接吗?因为在那种情况下,它只会破坏目的......
  • 是的,您需要数据连接,如果您想要更高的准确度,那么您必须使用GPS_PROVIDER
  • 是的,这就是我的问题,如何在没有数据连接的情况下直接使用 GPS 提供商
猜你喜欢
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
  • 2014-05-09
相关资源
最近更新 更多