模拟器上的GPS无法获取地理位置信息 - Android

6

我正在开发一款Android操作系统的应用程序,目前还处于起步阶段,但是我无法让模拟器中的GPS正常工作。

我在互联网上阅读了相关资料,得知需要向模拟器发送地理位置信息才能启用GPS定位服务。我已经尝试使用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提供程序了吗? - Tughi
如果你是指设置,是的它在那里。 - Maurizio Pozzobon
4个回答

5
原来,由于我是针对Android 1.5进行开发(而不是Google API 1.5),因此地图(以及其他功能)被禁用了。一旦我更改了目标平台,我的错误就消失了。
顺便说一下,谢谢大家。

1
谢谢!对于所有人:您可以随时在Eclipse中更改项目的构建目标:在Package Explorer中右键单击项目,选择属性> Android,然后为项目目标勾选“Google API”。--使用非英语文化设置的开发人员可能会注意到,在位置控件中按下发送按钮不会将新位置发送到Android模拟器。它已经在即将发布的SDK工具版本7中得到修复;对于快速修复,您可以将语言环境更改为'en'。(有关详细信息,请参见http://code.google.com/p/android/issues/detail?id=915。) - Patrick de Kleijn

1

为了测试地理定位是否正常工作,您可以使用Google Maps应用程序中的“我的位置”功能。


1

请确保在设置中启用了GPS。如果问题仍然存在,您只需转到主菜单中名为“导航”的应用程序,运行它并退出。现在尝试您的应用程序。 您可以通过在DDMS透视图中选择特定设备来在模拟器控件下启用位置控件。如果不选择设备,则无法正常工作。


0

我想这个问题已经解决了,但是在代码中,你应该使用由LocationManager服务返回的字符串作为提供者,而不是像你在l.getLastKnownLocation("gps")中写的那样使用"gps"。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接