首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓:如果手机通过WiFi连接,就无法从网络中获取地理位置。

安卓:如果手机通过WiFi连接,就无法从网络中获取地理位置。
EN

Stack Overflow用户
提问于 2012-02-19 17:12:20
回答 1查看 2.2K关注 0票数 0

我想从这样的网络中获得地理位置:

代码语言:javascript
复制
boolean network_enabled = false;
LocationManager lm;
lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);

try{
   network_enabled = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
} catch(Exception ex){
   Log.v("my_log_tag", "network location exception: " + ex.toString());
}

if(network_enabled){
   lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListenerNetwork);
}

如果我的手机只通过手机网络连接,这很好,但我有一个问题:如果我的电话不仅通过蜂窝网络连接,而且还连接到某些WiFi接入点(例如,我的家庭接入点),那么我就没有收到任何位置。似乎安卓试图使用我的WiFi接入点来获取地理位置,但它当然不能。我怎么能让安卓从手机网络中获取位置,而忽略任何WiFi连接?

我肯定知道这是可能的,因为,例如,Yandex地图应用做的很好。

我需要说更多的细节:这个Yandex地图应用程序可以通过网络接收地理定位,即使我没有启用复选框设置、->位置和安全->使用无线网络。我不知道它是如何工作的,但也许它使用了完全不同的方法。

事实是:如果我启用了GPS,它就会使用GPS。如果我禁用了全球定位系统,但启用了蜂窝网络连接,那么它就使用网络进行地理定位,独立于WiFi连接和复选框“使用无线网络”。

我怎么能做同样的事呢?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-03-22 14:06:32

在我检索地理位置的工作中,wifi访问点只会定期发送它们的位置(30秒到5分)。但是,要知道NETWORK_PROVIDER也是从基站接收到的(这是缓慢和不准确的,但在建筑物中有更好的信号)。

代码语言:javascript
复制
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListenerNetwork);

这就是我如何用手机的gps找到地理定位最快的结果,但是使用NETWORK_PROVIDER的效果很慢,而且我还没有找到一个很好的解决方案来迫使位置更新得更快。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9351260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档