我是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);
}
答案 0 :(得分:0)
您的应用程序崩溃的原因可能是因为您收到了null pointer exception
。
你必须明白GPS修复不是一个直接的过程,它可能需要一些时间,在这段时间你没有工作位置,除非你使用getLaskKnownLocation
方法(可能返回null)同样)。
所以您需要或使用:
Location loc = lm.getLastKnownLocation(provider);
或实施LocationListener,一旦新位置更新到达,它就会启动。
教程: http://www.vogella.com/articles/AndroidLocationAPI/article.html