我想在Android模拟器中获得经度和纬度进行测试。
有谁能指导我如何实现这个目标吗?
如何将模拟器的位置设置为测试位置?
我想在Android模拟器中获得经度和纬度进行测试。
有谁能指导我如何实现这个目标吗?
如何将模拟器的位置设置为测试位置?
当前回答
在模拟器控制台中使用"geo"命令
从命令行发送模拟位置数据:
在Android模拟器中启动你的应用程序,在SDK的/tools目录中打开一个终端/控制台。 连接到模拟器控制台: telnet localhost 5555(将5555替换为模拟器正在运行的任何端口) 发送位置数据: * geo fix发送固定的地理位置。 该命令接受以十进制为单位的经度和纬度,以及以米为单位的可选海拔。例如: 地理修正-121.45356 46.51119 4392
其他回答
这里没有人提到模拟器本身的内置解决方案,所以对于未来的访问者,我想用视觉效果来分享它。
首先,运行你的Android模拟器,点击菜单按钮(3点)如下所示:
然后在左侧窗格中,选择Location并根据需要更改坐标。按下发送按钮后,更改将立即生效(建议大家打开谷歌Maps以便更好地理解)。
Android Studio版本:2.3.3
此外,为了使不同的位置实时到达应用程序,可以使用GPX文件。从谷歌地图方向创建这个文件非常简单:
进入谷歌地图,选择一个位置,然后按“方向”进入第二个位置。 创建路由后,从浏览器复制一个链接 访问这个网站:https://mapstogpx.com,并将链接粘贴到“Let's Go”框 按下“Let's Go”键,即可下载GPX文件
使用“加载GPS/KML”按钮将创建的文件加载到模拟器中,选择速度,并按底部的绿色播放按钮。如下图所示,位置将实时发送。
Dalvik Debug Monitor >选择模拟器>模拟器控制选项卡>位置控制。
DDMS——android_sdk/tools/ DDMS或android_sdk/tools/monitor
在我自己的一个项目中,我开发了一个在线服务,可以为Android模拟器提供模拟位置。
它使用geo nmea而不是geo fix,这使得它可以设置速度,航线,精确的时间等,除了纬度/长度。
该服务只需要nc (netcat)命令行工具,不需要其他工具。
http://www.kisstech.ch/nmea/
假设你已经设置并运行了mapview:
MapView mapView = (MapView) findViewById(R.id.mapview);
final MyLocationOverlay myLocation = new MyLocationOverlay(this, mapView);
mapView.getOverlays().add(myLocation);
myLocation.enableMyLocation();
myLocation.runOnFirstFix(new Runnable() {
public void run() {
GeoPoint pt = myLocation.getMyLocation();
}
});
您需要在清单中获得以下许可:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
要从Eclipse向模拟器发送模拟坐标,请转到“窗口”菜单,选择“显示视图”>“其他”>“模拟器控件”,您可以从出现的模拟器控制窗格中发送坐标。
1. Android Studio用户。
运行模拟器后进入Tools->Android->Android设备监视器
从位置控件组中单击“模拟器控件”选项卡更改。
2. Eclipse用户。
首先在Eclipse菜单中选择“窗口”,然后选择“打开透视图”,然后选择“DDMS”。 即窗口->打开透视->DDMS。
你会看到左边设备面板和右边你会看到不同的选项卡。 选择“模拟器控制”选项卡。
在底部你会看到位置控制面板。 选择“手动”选项卡。
在文本框中输入经度和纬度,然后单击发送按钮。 它会将位置发送给模拟器和应用程序。
3.使用telnet。
在run命令中键入this。
telnet localhost 5554
如果您不使用windows,您可以使用任何telnet客户端。
连接到telnet后,使用以下命令将您的位置发送到模拟器。
geo fix long lat
geo fix -121.45356 46.51119 4392
4. 使用基于浏览器的谷歌地图工具
有一个程序使用GWT和谷歌Maps API来启动一个基于浏览器的地图工具来设置模拟器中的GPS位置:
android-gps-emulator