Android Emulator设置地理位置信息

使用Android Emulator,可以自己设置GPS地理位置信息,根据Android官方文档的介绍,可以有如下几种方式:
1. 通过命令行:

2. 通过Eclipse:
设置路径为:Window > Show View > Other > Emulator Control.
In the Emulator Control panel, enter GPS coordinates under Location Controls as individual lat/long coordinates, with a GPX file for route playback, or a KML file for multiple place marks. (Be sure that you have a device selected in the Devices panel—available from Window > Show View > Other > Devices.)
Using DDMS

3. 通过DDMS:
With the DDMS tool, you can simulate location data a few different ways:
Manually send individual longitude/latitude coordinates to the device.
Use a GPX file describing a route for playback to the device.
Use a KML file describing individual place marks for sequenced playback to the device.

我还是比较喜欢用命令行的方式~
不过,我通常使用HAXM或KVM来加速我的emulator(里面时运行Intel的image),我就发现这些设置方法对我的emulator都没有生效。这个问题曾经困扰了我好几天,后来和一个同事交流时才发现,其实这个设置地理位置信息是依赖于Google API的,而使用Intel的一些image,里面默认时没有Google API的,所以不能生效(即使geo fix命令返回是ok)。所幸的是,Android SDK中从android 4.4开始也直接提供了x86 image的Google APIs。
对于Android 4.3/4.2等的X86镜像,需要通过如下步骤来手动添加Google API的支持。

我第一次这么操作时,在上传google maps文件到x86 image中时,出现了如下的错误:

后来发现原因是,原本的system.img的容量只够存放自己的东西,里面已经存不下其他东西了。所以,在启动x86 AVD时,要用”emulator -partition-size 1024 avd-for-x86“命令来调整/data目录的大小为1024MB。

参考资料:
android官方文档:http://developer.android.com/guide/topics/location/strategies.html
Intel image使用Google Maps API: http://38911bytes.blogspot.de/2012/03/how-to-use-google-maps-api-in-android.html
http://stackoverflow.com/questions/9857325/google-maps-sdk-with-new-intel-atom-x86-emulator

master

Stay hungry, stay foolish.

发表评论

电子邮件地址不会被公开。 必填项已用*标注