【问题标题】:LocationClient.getLastLocation() returns Null although connectedLocationClient.getLastLocation() 尽管已连接,但返回 Null
【发布时间】:2014-05-09 14:29:17
【问题描述】:

我试图通过 LocationClient 接收我当前的位置,但由于某种原因它返回 null。我不想使用 GPS,因此我在我的 Manifest 中删除了良好的位置访问权限。

清单:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> -->

主活动:

  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
....
mLocationClient = new LocationClient(this, this, this); 
....
}

@Override
   protected void onStart() {
      super.onStart();
      // Connect the client.
      mLocationClient.connect();
}

@Override
   protected void onStop() {
      // Disconnect the client.
      mLocationClient.disconnect();
      super.onStop();
   }

@Override
   public void onConnected(Bundle dataBundle) {
      location = mLocationClient.getLastLocation();
       // do something with the current location
   }

由于某种原因,除非我打开手机上的设置并启用 GPS,否则它总是返回 null 位置。启用 GPS 后,我就可以获取我的位置。它确实通过网络获取位置。我不想使用 GPS,也不想启用它。但是,如果没有启用 GPS,它根本无法获得位置。 任何想法我做错了什么?

【问题讨论】:

  • 这是粗略的功能,你必须从你的手机激活GPS服务。如果您不想使用 GPS 服务,则需要激活您的罚款权限。
  • 哇,谢谢,现在它似乎真的可以工作了......我一直认为最好的位置应该是 GPS ......这就是我删除此权限的原因
  • 我刚开始时也做了同样的事情,在你意识到一切实际在做什么之前似乎违反直觉。
  • @zgc7009 这充其量是一个非常不准确的陈述。粗略返回网络位置。罚款返回 GPS。 developer.android.com/reference/android/… 。 LocationService 返回 null 的原因可能是没有可用的粗略位置。该服务不会将精细位置返回给没有该权限的应用。

标签: android gps location-client


【解决方案1】:

如果您不想使用 GPS,它会从网络获取位置,请在您的设备中启用它,如下面的屏幕截图所示

【讨论】:

  • 是的,这就是问题所在......当我禁用 GPS 时,我根本找不到位置
  • @user3425561:我说的是启用Use wireless networks 的复选框,以便它可以使用网络提供商为您提供位置。
猜你喜欢
  • 2020-07-25
  • 2013-10-31
  • 1970-01-01
  • 2020-07-25
  • 2021-12-10
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
  • 2018-03-09
相关资源
最近更新 更多