Android网络位置提供商问题

时间:2012-09-24 11:41:39

标签: android networking location

Android网络位置提供商没有互联网或无线网络吗? 我面临着这种行为的不一致,因为有时即使没有互联网/ wifi,我的onlocationchanged()方法也会被调用。

有时候我没有得到一个位置修复,如果互联网/ wifi关闭时出现以下消息“太多没有位置ap-s。没有计算位置”的wifilocator和celllocator-Primary cell miss in cache。

请告诉我如何解决这个问题?

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

1 个答案:

答案 0 :(得分: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)进行数据连接完成的。 一些实现另外将少量服务器的数据库下载到电话(描述电话当前位置周围的小区域),使得电话不必一直查询因特网。但是,一旦手机移动到这个小区域之外,它将需要访问互联网以再次获得正确的位置。

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