我制作了一个Android应用程序。我在笔记本电脑上运行应用程序,并将我定位在一个地方(在一个错误的城镇约250公里)。使用另一个api密钥在我的桌面上运行应用程序时,我位于同一个错误的城市。谁能告诉我问题出在哪里?谢谢!
答案 0 :(得分:1)
当您在没有GPS的桌面模拟器上运行移动应用程序时,每次都会获得一些固定位置。要获得真正的GPS坐标,您需要将其安装在Android设备中并进行测试。
**更新**
如果您在手机上遇到同样的问题,那么您的手机GPS可能已关闭,您需要打开它,或者手机正在使用Wifi来修复其位置。
答案 1 :(得分:1)
根据我的经验,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密钥。
由于您未在实际设备上运行应用程序,因此向您的应用程序发送不同位置的唯一方法是推送MOCK LOCATION。为此,只需在模拟器中启动应用程序,转到Eclipse IDE中的DDMS透视图,然后查找左侧的选项(如果找不到,则重置DDMS透视图)。它应该是这样的:
在“设备”选项卡下选择模拟器名称,然后您可以使用“位置控制”发送纬度和经度坐标。
完成开发和测试后,请务必删除ACCESS_MOCK_LOCATION权限并使用GPS,aGPS芯片或移动电话/无线网络在实际手机或平板电脑上测试位置检测。
答案 2 :(得分:0)
只是想一想,手机是通过家庭wifi网络获取GPS位置而不是手机的GPS吗?可能会解释为什么他们都给出了同样错误的价值。