模拟器上的 GPS 没有得到地理修复 - Android
Posted
技术标签:
【中文标题】模拟器上的 GPS 没有得到地理修复 - Android【英文标题】:GPS on emulator doesn't get the geo fix - Android 【发布时间】:2010-10-28 04:02:22 【问题描述】:我正在为安卓操作系统开发一个应用程序,我才刚刚开始,但我无法让模拟器上的 GPS 工作。 我在互联网上读到您需要向模拟器发送地理修复以启用 gps locationProvider。我都在使用 DDMS 和 telnet 来尝试发送它,但是 logcat 从来没有告诉我它收到了一个新的修复程序,我的道歉仍然认为 gps 被禁用了
这是我的代码
package eu.mauriziopz.gps;
import java.util.Iterator;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
public class ggps extends Activity
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager l =(LocationManager) getSystemService(Context.LOCATION_SERVICE);
List<String> li = l.getAllProviders();
for (Iterator<String> iterator = li.iterator(); iterator.hasNext();)
String string = iterator.next();
Log.d("gps", string);
if (l.getLastKnownLocation("gps")==null)
Log.d("gps", "null");
我了解到 DDMS 在非英语操作系统上可能无法正常工作,但 telnet 应该可以工作!
更新:gps 已在设置中启用
【问题讨论】:
模拟器中是否启用了 GPS 提供程序? 如果你的意思是在设置中,是的 【参考方案1】:事实证明,因为我是为 Android 1.5(而不是 Google API 1.5)开发的,所以地图(看起来像其他功能)被禁用了。 一旦我更改了目标平台,我的错误就消失了。
谢谢大家
【讨论】:
谢谢!对所有人:您可以随时在 Eclipse 中更改项目的构建目标:在 Package Explorer 中右键单击项目,选择 Properties > Android,然后检查 Project Target 的“Google API”。 -- 使用非英语文化设置的开发人员可能会注意到,按下位置控制中的发送按钮不会向 Android 模拟器发送新位置。它已在即将发布的 SDK 工具第 7 版中修复;为了快速修复,您可以将您的语言环境更改为“en”。 (详情请参阅code.google.com/p/android/issues/detail?id=915。)【参考方案2】:要测试 geofix 是否正常工作,您可以使用带有“我的位置”的 Google 地图应用
【讨论】:
【参考方案3】:确保在设置中启用了 gps。如果问题仍然存在,您只需转到主菜单中名为 Navigation 的应用程序,运行它并退出。现在试试你的应用程序。 您可以通过选择特定设备在 DDMS 透视图中启用模拟器控制下的位置控制。如果不选择设备,它将无法工作
【讨论】:
【参考方案4】:我想已经修复了,但是在代码中你应该使用 LocationManager 服务返回的字符串作为提供者,而不是你在l.getLastKnownLocation("gps")
中输入的“gps”。
【讨论】:
以上是关于模拟器上的 GPS 没有得到地理修复 - Android的主要内容,如果未能解决你的问题,请参考以下文章