【发布时间】:2012-03-19 21:30:10
【问题描述】:
我做了一个安卓应用程序。我在笔记本电脑上运行应用程序并将我定位在一个地方(在大约 250 公里的错误城镇)。当使用另一个 api 密钥在我的桌面上运行应用程序时,我位于同一个错误的城市。谁能告诉我问题出在哪里?谢谢!
【问题讨论】:
-
您在运行测试时是否以相对论的速度移动?
我做了一个安卓应用程序。我在笔记本电脑上运行应用程序并将我定位在一个地方(在大约 250 公里的错误城镇)。当使用另一个 api 密钥在我的桌面上运行应用程序时,我位于同一个错误的城市。谁能告诉我问题出在哪里?谢谢!
【问题讨论】:
根据我的经验,Android 不会仅仅因为您的 Wi-Fi 会将位置信息继承给模拟器而获取位置信息。
您需要遵循一些步骤:
确保在您的 Android Manifest 中具有以下权限:
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
android.permission.ACCESS_MOCK_LOCATION
android.permission.CHANGE_WIFI_STATE
android.permission.ACCESS_WIFI_STATE
确保您的应用程序标签中有地图库:
<application android:icon="@drawable/ic_launcher" >
<uses-library android:name="com.google.android.maps" />
</application>
确保在 /layout/map.xml 文件中的 MapView 中具有有效的 Maps API 密钥。
因为您不是在实际设备上运行您的应用程序,所以向您的应用程序发送不同位置的唯一方法是推送一个模拟位置。为此,只需在模拟器中启动您的应用程序,转到 Eclipse IDE 中的 DDMS 透视图,然后查找左侧的选项(如果找不到,请重置 DDMS 透视图)。它应该是这样的:
在“设备”选项卡下选择模拟器名称,然后您可以使用“位置控件”发送纬度和经度坐标。
完成开发和测试后,请务必移除 ACCESS_MOCK_LOCATION 权限,并在具有 GPS、aGPS 芯片或蜂窝/Wifi 网络的实际手机或平板电脑上测试位置检测。
【讨论】:
当您在没有 GPS 的桌面模拟器上运行移动应用程序时,您每次都会得到一些固定的位置。要获得真正的 GPS 坐标,您需要将其安装在 Android 设备中并进行测试。
** 更新**
如果您的手机也遇到了同样的问题,那么您的手机 GPS 可能已关闭,您需要将其打开,或者手机正在使用 Wifi 来修复其位置。
【讨论】:
只是想一想,手机是通过您的家庭 wifi 网络而不是手机的 GPS 获取 GPS 位置吗?可能会解释为什么它们都给出相同的错误值。
【讨论】: