从Android设备获取经度和经度时出错

时间:2013-09-27 20:10:02

标签: android google-maps

以下是我在谷歌地图上显示登录用户并获取用户位置详细信息(即纬度和经度)的代码

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连接。 )

2 个答案:

答案 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 = location

googleMap可以为null,视图尚未完全创建。

如果手机未启用GPS,

位置可以为空。

搜索并关注有关该主题的一些指南。