java在位置管理器中获取错误
我试图找出安卓设备的当前纬度和经度,但我得到了java。lang.nullpointerexception和应用程序正在强制关闭。尽管我从这里得到了参考,并使用了答案中的代码,该答案被认为是正确的: How to get Android GPS location 我的代码是:
try{
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(bestProvider);
double latit=location.getLatitude();
double longit=location.getLongitude();
Toast.makeText(getApplicationContext(),"Your Location is:\nLatitude:\t"+latit+"\nLongitude:\t"+longit,Toast.LENGTH_LONG).show();
}catch(Exception ex){
Toast.makeText(getApplicationContext(), "Error:"+ex,Toast.LENGTH_LONG).show();
}
# 1 楼答案
您可以使用gps跟踪器类获取当前位置
现在在您的活动中:
创建gps跟踪器类的对象
# 2 楼答案
我敢打赌你的
location
变量是空的,这就是你得到NullPointerException
的原因。当您调用LocationManager.getLastKnownLocation()
时,如果没有最后一个已知的位置,它可以返回null。最好是使用LocationManager.requestLocationUpdates()
方法之一请求位置更新,并传入LocationListener