把你的 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 连接,您就无法(可靠地)使用网络位置。