【问题标题】:Android Network Location Provider IssueAndroid 网络位置提供程序问题
【发布时间】:2012-09-24 11:41:38
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android networking location


    【解决方案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 才能获得正确的网络位置修复。至少大部分时间。 手机会收集以下数据(无需连接到互联网即可):

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

    • 手机的蜂窝无线电提供附近的移动蜂窝信息。

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

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

    【讨论】:

    • 嗨..感谢您的回复..我们实际上希望即使在互联网关闭时也能调用 onlocationchange。但它现在显示出一致的行为。有时它会这样工作。有时,onlocationchange 不会得到调用。
    • 您是否在代码中使用“网络”位置提供程序? (它可能被命名为不同)你在任何地方都有异常吗?您收到了 0,0 个修复、错误修复,还是根本没有返回修复?
    猜你喜欢
    • 1970-01-01
    • 2011-10-10
    • 2011-01-26
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多