Android DDMS GPS位置已插入,但系统中无任何反应

时间:2011-08-15 17:12:05

标签: android eclipse gps ddms

我尝试在所有LocationListener属性的函数中使用DDMS位置模型和非常简单的Log.i()调用。当我启动程序时,我在LogCat中收到Log.i()的{​​{1}}消息,所以我认为我正确地注册了监听器。但是当我使用Eclipse中的DDMS菜单将位置放入VM时,我什么也得不到。 LogCat,控制台或VM内部没有变化。好像根本没有发生任何事情。

我怎么能开始发现问题?

以下是我的简单GPS事件记录器的代码:

onStatusChanged()

这里的清单:

public class gpsActivity extends Activity {

    private static final String TAG="gpsActivity";
    private static TextView label;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        label = (TextView) findViewById(R.id.label);
        LocationManager manager = (LocationManager) this
                .getSystemService(LOCATION_SERVICE);
        LocationListener listener = new LocationListener() {
            @Override
            public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
                Log.i(TAG, "onStatusChanged: "+arg0);
            }
            @Override
            public void onProviderEnabled(String arg0) {
                Log.i(TAG, "onProviderEnabled: "+arg0);
            }
            @Override
            public void onProviderDisabled(String arg0) {
                Log.i(TAG, "onProviderDisabled: "+arg0);
            }
            @Override
            public void onLocationChanged(Location location) {
                Log.i(TAG, "onLocationChanged");
            }
        };
        manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2, 0,
                listener);
        setContentView(R.layout.main);
    }
}

另外另外注意,我使用的是德国Windows XP并发现GPS套件存在问题,因为在德国系统中,1/2的数字格式不是0.5而是0.5,这会导致错误在GPS解析器语法中。但是,将我的系统编号格式更改为英语(美国)也没有改变,我根本没有得到任何消息,例外或结果。

2 个答案:

答案 0 :(得分:1)

确保在DDMS的设备菜单中选择了您的设备/ emmulator。

编辑:

糟糕。我应该早些看到这些:

您正在使用NETWORK_PROVIDER。为了从DDMS接收模拟位置(我还想通过geo命令行),您必须注册GPS_PROVIDER。您的代码通过更改onCreate方法的最后一行来工作:

manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2, 0,
                listener); 

NETWORK_PROVIDER是通过电话网络(例如3G)或WIFI

的信号

答案 1 :(得分:1)

涉及3个问题。因为找到所有这些都花了超过12个小时的纯研究时间,请原谅我甚至不会再尝试找到相应的来源。

问题涉及:

  1. 您应该使用Google API <version>作为目标,而不是Android <version>,因为后者没有激活必要的东西。
  2. 您应该通过telnet而不是DDMS发送更新,因为DDMS会创建一些不确定的,未记录的和未记录的结果,特别是如果您使用的是非美国版本的Windows。
  3. 您的模拟器中的时区会自动选择,但可能是错误的区域设置(例如,我的是德国)。您可以在Android设置中将其从内部正在运行的模拟器中关闭,并选择正确的区域设置。这似乎只出现在旧版本的Android中。
  4. 祝所有尝试这种错误的人好运!