从按钮获取坐标按下不起作用

时间:2013-04-02 09:14:15

标签: java android google-maps

我是Android开发的新手,我尝试在我的Android应用程序中创建一个方法,按下按钮并获取坐标(经度和纬度)。但是当我按下按钮时程序停止在模拟器上工作。

我可能只是在这里做错了。浏览Callstack并没有帮助我。它太杂乱了......很多无用的信息。

我该如何解决这个问题?

public void onLocateByGMapButtonClick() {
    LocationManager mloc = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    List<String> providers = mloc.getAllProviders();
    Location loc = new Location(providers.get(0));
    double loTude = loc.getLongitude();
    double laTude = loc.getLatitude();

    String newCoords = loTude + "," + laTude;
    location.setText(newCoords);
    Toast.makeText(this.getBaseContext(),"Location have been updated!",5);
}

1 个答案:

答案 0 :(得分:0)

您的应用程序崩溃的原因可能是因为您收到了null pointer exception

你必须明白GPS修复不是一个直接的过程,它可能需要一些时间,在这段时间你没有工作位置,除非你使用getLaskKnownLocation方法(可能返回null)同样)。

所以您需要或使用:

Location loc = lm.getLastKnownLocation(provider);

或实施LocationListener,一旦新位置更新到达,它就会启动。

教程: http://www.vogella.com/articles/AndroidLocationAPI/article.html