2

android 网络位置提供程序是否可以在没有互联网或 wifi 的情况下工作?我在这种行为中面临不一致,因为有时即使没有互联网/wifi 也会调用我的 onlocationchanged() 方法。

有时,如果 Internet/wifi 关闭并显示以下消息“太多无位置 ap-s.Not 计算位置”用于 wifilocator 和 celllocator-缓存中的主单元未命中,我有时无法获得位置修复。

请让我知道我该如何解决这个问题?

我正在使用 API 7。在 android 2.3.6 Samsung Galaxy Y 上测试这个应用程序。

4

1 回答 1

1

把你的 onLocationChanged() 方法放在这个里面:

    public boolean haveNetworkConnection()
     {
       ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
       NetworkInfo netInfo = cm.getActiveNetworkInfo();
       if (netInfo == null)
          return false;
      else
          {
          if(netInfo.isConnected())
              return true;
          else
              return false;
          }
    }

希望 !这会有所帮助。尝试这个。

当我再次查看您的问题时。我找到了这个 :

是的,您需要连接到 Internet 才能获得正确的网络位置修复。至少大部分时间。手机收集以下数据(无需连接到 Internet 即可执行此操作):

  • 通过扫描wifi接入点附近的wifi信息。

  • 附近的移动蜂窝信息可从手机的蜂窝无线电获得。

然后电话将此数据发送到服务器。服务器使用此数据查看其数据库以确定手机最可能的位置。服务器将位置信息发送回手机。这一切都是通过互联网(移动互联网或wifi)使用数据连接完成的。一些实现额外将少量服务器的数据库下载到手机(描述手机当前位置周围的一小块区域),这样手机就不必一直查询互联网。但是,一旦手机移出这个小区域,它就需要访问 Internet 才能再次获得正确的位置。

因此,基本上,如果没有 Internet 连接,您就无法(可靠地)使用网络位置。

于 2012-09-24T12:25:05.733 回答