我们知道Android有两种定位模式: GPS和网络。如果我们使用网络,那么Android可以使用WIFI或2G/3G蜂窝塔来定位。没有全球定位系统,我们可以简单地使用LocationManager.NETWORK_PROVIDER获取位置数据。但是,我们如何才能知道这种模式是WIFI还是2G/3G移动台呢?Android不为WIFI和手机塔提供单独的提供商。
我想了个办法。但我不确定这是否正确。请回顾并提出意见:
,<=100m),则可能使用WIFI。如果精度较低,是否仍在使用蜂窝塔?
据我所知,WIFI定位的精度相对较高。但是它的正常精度范围是多少呢?另一个问题是,Android同时使用WIFI和手机塔吗?如果是这样的话,那么在我的申请中,我可以认为它使用的是WIFI,而不是手机塔。
谢谢!
发布于 2012-05-18 01:19:25
这是正确的,Android并没有给出一种方法来确定如何计算网络位置。网络提供商的原则是收集设备上的所有相关数据,然后将其全部发送到Google服务器,在那里计算您的位置并将其发回给您。我不确定,但网络位置也可能使用加速度计/陀螺仪/罗盘数据来提高定位的准确性,特别是当您连续计算位置时。所以我相信它可以同时使用手机塔和Wifi信息。
你的准确性方法在大多数情况下应该有效,但不是100%可靠。
另一种可能是关闭wifi,计算第一个位置修复,然后再打开它,再试一次。通过比较这两个位置及其准确性估计,您可能可以猜到wifi对当前位置的位置引擎的影响。
出于好奇,你为什么要用这个?
发布于 2013-01-28 08:57:46
实际上,有办法做到这一点。这不仅是记录在案的,因此也可能在没有通知的情况下发生变化。您可以通过网络位置提供程序获得使用的位置估计方法,更新额外的数据。
Bundle extras = location.getExtras();
if (extras.containsKey("networkLocationType")) {
    String type = extras.getString("networkLocationType");
    if (type .equals("cell")) {
        // Cell (2G/3G/LTE) is used.
    } else if (type .equals("wifi")) {
        // Wi-Fi is used.
    }
}https://stackoverflow.com/questions/10631811
复制相似问题