android 网络位置提供程序是否可以在没有互联网或 wifi 的情况下工作? 我在这种行为中遇到了不一致,因为有时即使没有互联网/wifi 也会调用我的 onlocationchanged() 方法。
如果 internet/wifi 关闭并显示以下消息“太多没有位置 ap-s.Not compute a location”,对于 wifilocator 和 celllocator-Primary cell miss in cache,我有时无法修复位置。
请告诉我如何解决这个问题?
我正在使用 API 7。在 Android 2.3.6 Samsung Galaxy Y 上测试此应用。
最佳答案
将您的 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 信息。
可从手机的蜂窝 radio 中获取附近的移动蜂窝信息。
然后手机将此数据发送到服务器。服务器使用此数据查看其数据库以确定手机最可能的位置。服务器将位置信息发送回手机。这一切都是通过互联网(移动互联网或 wifi)使用数据连接完成的。 一些实现额外下载少量服务器的数据库到手机(描述手机当前位置周围的一小块区域),这样手机就不必一直查询互联网。但是,一旦手机移出这个小区域,它就需要访问互联网才能再次获得正确的位置。
因此,基本上,如果没有 Internet 连接,您将无法(可靠地)使用网络位置。
关于Android 网络位置提供商问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12564366/