如何获取当前位置的经纬度

时间:2011-06-07 09:24:41

标签: android

我正在尝试使用下面的代码获取当前位置的纬度和经度,但它强制关闭并显示在log cat“null pointer exception”中,所以请检查我错在哪里..我的鳕鱼位于...... < / p>

1 个答案:

答案 0 :(得分:1)

我认为如果空指针异常确实在if()块内发生,那么在getLatitude()调用时,这意味着您刚刚测试的Location对象的引用不再有效。

所以我会在使用之前尝试复制位置对象,如下所示:

       public void onLocationChanged(Location location) {
            Location copyOfLocation = new Location(location);
            updateWithNewLocation(copyOfLocation );
        }

没有测试过这个,我不记得在......之前看到这个问题了。

- 编辑 -

等等,自上次编辑以来异常已经移动......好吧,您的位置为空可能是因为系统没有以前的位置可以提供给您。尝试外出手机,启动GPS,启动谷歌地图,直到通知栏中的GPS图标不再闪烁,退出地图,回到里面再次尝试你的应用程序。

- 编辑2 -

getLastKnownLocation有两个条件:

  • 必须启用位置提供商(必须使用Android偏好设置面板启用GPS)
  • 系统必须在过去的某个时间使用所需的提供者计算一个位置

否则它将返回null

相关问题