我正在尝试测试我的应用程序,它使用模拟器使用地理定位。描述了几种方法here .我要去 Window->Open Perspective->DDMS
,然后输入 lat。和长。一个在 Location Controls
中,然后我点击“发送”。
但它不起作用。相反,我看到以下错误:Unable to send command to the emulator.
为什么会这样!?
我不认为我的应用有问题,因为我使用模拟器的默认浏览器进行了测试,它也无法访问位置信息。
详细信息:
- 操作系统 10.9.4
- AVD_for_Nexus_4_by_Google 定位 v4.4.2
- 适用于 Android 开发人员的 Eclipse IDE 23.0.2.1259578
更新:
我更改为 AVD_for_Galaxy_Nexus_by_Google
,它仍然不起作用,但我不再看到该错误。我点击发送但没有任何反应。
更新 2: 我测试过使用 Telnet 将位置数据传递给模拟器,但还是没有任何反应。没有错误。根本不值一提。呃!
telnet localhost 5554
geo fix 50 50
它以 OK
响应,但没有任何反应。仍然没有可用的位置数据。
更新 3: 我注意到 LogCat 中出现以下错误流
09-20 17:58:59.910: E/eglCodecCommon(1777): glUtilsParamSize: unknow param 0x00000b44
09-20 17:58:59.910: E/eglCodecCommon(1777): glUtilsParamSize: unknow param 0x00000bd0
09-20 17:58:59.930: E/eglCodecCommon(1777): **** ERROR unknown type 0x0 (glSizeof,72)
应用程序似乎运行良好,这些错误应该得到解释 here .
更新 4: 我已经看到多个建议来确认我的 AVD 启用了 GPS 支持,但是这个选项/设置没有出现在任何地方。当我打开“Android 虚拟设备管理器”,然后在我的其中一台设备上单击“编辑”时,这就是我所看到的:
没有提到“GPS 支持”。
更新 5:
我检查了我所有 AVD 的 config.ini 文件,它们都正确设置为 hw.gps=yes
。我还使用 Google API 目标创建了一个 AVD,但我仍然遇到同样的问题。该应用程序加载但没有可用的位置数据,具有“位置控制”和远程登录。
更新 6: 按照下面 Gyebro 的建议...尝试加载他的 LocationDemo 应用程序...
这是我在 LogCat 中看到的内容:
最佳答案
要检查您的模拟器是否支持 GPS,请转至 ~/.android/avd/<emulatorname>.avd/
并检查 config.ini
和 hardware-qemu.ini
(如果存在)它们应该包含:
hw.gps = yes
编辑
您必须使用 Google API 系统镜像。你应该设置 Google APIs - API Level 1#
作为目标
编辑结束
假设是这样,并且在您的模拟器中启用了 Location,请在您的模拟器中运行此测试应用程序:LocationTest demo , 有关详细信息,请参阅 Dev docs on Retrieving the Current Location
此示例实现了 GooglePlayServicesClient.ConnectionCallbacks
, GooglePlayServicesClient.OnConnectionFailedListener
和 LocationListener
.并且在与 LocationClient 连接之前检查 Google Play 服务(这就是我们需要 Google 模拟器图像的原因。)(参见 MainActivity.java)
启动应用程序后,您应该会在状态栏中看到“位置”图标。还要验证 GP 服务是否存在并且 LocationClient 在日志中已连接。
D/LocationTest﹕ Google Play services is available.
D/LocationTest﹕ LocationClient: Connected
发送后geo fix 66 80
使用 telnet(应以 OK
响应)或使用 DDMS 的其他有效坐标,您应该看到:
D/LocationTest﹕ Location changed!
如果您仍然对这种方法感到困惑,另一种模拟位置的方法是 create a Mock Location Provider app .
关于android - 无法在Android模拟器中模拟位置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953054/