2013-10-09 29 views
1

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

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

所以我想知道两两件事, 1 - 有没有解决办法,让我把我的第一个位置,而无需连接 和 2 - 如果没有解决办法是它的实际要求用户启用?我不是100%,但我很确定我不能以编程方式启用数据。

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

+0

如果您没有连接到互联网,您如何计划获取设备的位置? – Razgriz

+1

检查我的答案在这里:http://stackoverflow.com/a/19175359/1318946 –

+0

WiFi或GPS必须启用,以获取当前位置。您可以要求用户使用简单的AlertDialog启用其GPS,并使用startActivity将其引导至设置屏幕(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS)); – kjurkovic

回答

1

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

+0

非常感谢,这正是我想知道的, 在您看来,什么是我最好的方式去关于这个,我应该让用户进入设置页面,还是让他知道数据需要打开,或者什么都不做,就像标准地图应用程序一样? –

+0

我不相信。 AGPS仅用于更快的首次修复。GPS无需互联网。然后它需要15s的45s。所以你确定如果你从来没有互联网的Android将永远不会得到一个位置,但GPS已经放火?全球定位系统是为埃里工作而设计的,特别是在沙漠或森林中没有其他方向可能的情况下。在那里你将无法访问互联网。我认为他简单没有启用GPS(对于那个应用程序) – AlexWien

+0

没有辅助数据,从卫星获得信息需要12.5分钟(gps卫星每秒发送50位数据(不是千位或兆位),而且,如果卫星信号中断(这可能就像一座高大的建筑物一样简单 - 它并不需要太多),它会抛出所有东西并重新开始。所以如果你不在城市并且在外面开放,最好的情况是12.5分钟才能获得第一个锁。考虑到智能手机的移动性和典型使用区域,这几乎可以说它没有数据无法工作 –

0

有你在AndroidManifest.xml

定义<uses-permission android:name="android.permission.INTERNET" />如果是的话那么请检查您的网络连接:

或者

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

+1

我有非常类似的代码,唯一的区别是如果GPS不能获得我的位置,我不会回到NETWORK_PROVIDER,你认为这会有所帮助吗? 虽然我不想使用网络,但我需要更高的精度,因此只有在网络获得第一个坐标后才能使用,然后使用GPS。 顺便说一句,对于网络供应商你需要一个数据连接?导致在这种情况下,它只会失败的目的... –

+0

是的,你需要数据连接,如果你想要更高的准确性,那么你必须去'GPS_PROVIDER' –

+0

是的,这是我的问题,我该如何直接使用GPS供应商没有数据连接 –