我想在Android模拟器中获得经度和纬度进行测试。

有谁能指导我如何实现这个目标吗?

如何将模拟器的位置设置为测试位置?


当前回答

如果上述解决方案不奏效。试试这个:

在你的android manifest .xml中,在应用程序标记之外添加以下两个链接,当然是在你的manifest标记中

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission>
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>

其他回答

The already mentioned multiple times answer to use the shell command "geo fix..." is the correct answer. But in case you use LocationClient.getLastLocation() to retrieve your data it is worth to mention that it will not work at first. The LocationClient class uses the Google Play Service to retrieve the coordinates. For me this started working after running the emulators maps app once. During the first start you are asked to allow google apps access to your location, which I guess does the trick.

您可以通过Telnet连接到模拟器。然后你有一个模拟器控制台,允许你输入特定的数据,如地理定位,网络等。

如何使用控制台在这里有详细的解释。 要连接到控制台,打开命令行并键入

telnet localhost 5554

然后,您可以使用geo命令在设备上设置纬度、经度以及(如果需要的话)海拔高度,该设备将通过gps位置提供程序传递给所有程序。请参阅上面的链接以获得进一步的说明。

要在控制台中运行的特定命令为

geo fix <longitude value> <latitude value>

我发现这个网站对于找到一个现实的纬度/lng很有用:http://itouchmap.com/latlong.html

如果您需要多个坐标,您也可以使用带有路由的kml文件,本文对此进行了一些描述。我现在找不到更好的消息来源了。

把阿尔贝托·高纳的回答写在一行里

token=$(cat ~/.emulator_console_auth_token); cat <(echo -e "auth $token \n  geo fix 96.0290791 16.9041016  \n exit") - | nc localhost 5554

5554是adb设备中显示的模拟器端口号。

如果亚行的emu能够发挥作用,情况会更好。

我正在寻找一种更好的方法来设置模拟器的GPS坐标,而不是使用地理固定和手动确定特定的纬度和经度坐标。

找不到任何东西,我把一个小程序,使用GWT和谷歌Maps API来启动一个基于浏览器的地图工具,在模拟器中设置GPS位置:

android-gps-emulator

希望它能帮助那些无疑也会遇到这个困难/问题的人。

请参见获取用户位置

请参阅提供模拟位置数据。你会找到解决方法的。