模拟器上的 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的主要内容,如果未能解决你的问题,请参考以下文章

Android手机上的错误“无法启动地理定位服务代码:2”

地理定位在 GPS 关闭的情况下不起作用

android:如何使用模拟(假)坐标修复 gps?

LocationListener 适用于模拟器,而不是手机

需要一种从 iPhone CoreLocation 上的地址获取 GPS 坐标的方法

Android - 使用 LocationManager 不会提供地理修复