以下是我在谷歌地图上显示登录用户并获取用户位置详细信息(即纬度和经度)的代码
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap();
googleMap.setMyLocationEnabled(true);
// Creating location manager and location classes instances
locationManager = (LocationManager) this
.getSystemService(LOCATION_SERVICE);
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
CameraPosition cameraPosition = new CameraPosition.Builder().target(
new LatLng(location.getLatitude(), location.getLongitude())).zoom(9).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
。通过调试 这里能够成功地在地图上显示用户但是为了获得位置详细信息获得null poiner异常,我正在使用android移动设备(已配置设置),但我没有得到为什么空指针exception.suggest我合适的解决方案。(这里使用wifi连接。 )
答案 0 :(得分:1)
您在拨打getLastKnownLocation
时可能没有位置,这就是您获得空的原因。因此,在使用location对象之前,应检查以确保它不为null。例如if(location != null)
您应该考虑使用新的Location API甚至是内置的Google地图位置管理器,因为它们可以获得更好的效果
答案 1 :(得分:1)
一个不错的gps跟踪指南:http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/
只需要在onLocationChanged
中添加this.mLocation = locationgoogleMap可以为null,视图尚未完全创建。
如果手机未启用GPS,位置可以为空。
搜索并关注有关该主题的一些指南。