我想获得当前坐标,我尝试下一步
GoogleMap gm=getMap();
gm.setMyLocationEnabled(true);
Location location=getMap().getMyLocation();
但getMap()返回null, 我试着:
Criteria criteria = new Criteria();
String provider = service.getBestProvider(criteria, false);
Location location = service.getLastKnownLocation(provider);
if (location.getLatitude()!=0){
LatLng userLocation = new LatLng(location.getLatitude(), location.getLongitude());
但这项工作在Android 2.3中,但在4.2中。它返回null。
答案 0 :(得分:0)
我的应用程序中有相同的代码,它在版本4上运行良好:
String provider;
LocationManager locManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locManager.getBestProvider(criteria, false);
Location location = locManager.getLastKnownLocation(provider);
if (location != null) {
latitude = location.getLatitude();
mLongitude = location.getLongitude();
}
但是你的问题必须与你的getMap()错误有关。究竟是什么错误信息?
答案 1 :(得分:0)
重新启动手机时会重置位置属性。
因此,如果设备未以任何方式请求新位置(地图或请求位置的任何其他应用),则getMyLocation将返回null。
如果getMyLocation返回null,您应该做的是请求新的位置。
以下是有关如何获取/请求位置的主题: Good way of getting the user's location in Android
查找requestLocationUpdates()
方法。
然后当找到一个位置时(可能需要一些时间......尤其是室内),使用参数中的新位置调用callBack OnLocationChanged。
希望这有帮助!