Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 当使用LocationManager时,为什么有Wifi但没有连接帮助网络位置?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这可能是SO的主题,如果是这样我道歉(并乐意接受关闭的标志),但我有问题找出WIFI打开时的原因,但没有连接到任何接入点(在我的 Android设备上),它大大提高了使用LOCATIOnManager时网络提供商的准确性.如果没有它,一般网络位置结果距离我当前位置大约1英里.此外,大多数时候返回的lat / lng值是不同的,所以它甚至没有请求一次并且只是在lastKNownLOCATIOn()中缓存结果

显然,我正在使用GPS和网络提供商来获得对最终用户位置的适当修复(当两者都不可用时),并使用时间戳来确定哪个是最新的.

搜索过谷歌,并提出了各种答案,例如:“它只是做”和“它的魔力” – 说实话,这是毫无用处的.我不想深入描述内部工作,只是略低于“它只是做”,或“它是如何工作的”.

请求的代码

// first get LOCATIOn from network provider //
            if(isNetworkEnabled)
            {
                LOCATIOnManager.requestLOCATIOnupdates(
                        LOCATIOnManager.NETWORK_PROVIDER,MIN_TIME_FOR_updatES,MIN_DISTANCE_CHANGE_FOR_updatES,this);
                Logging.Debug("GPSTracker","Network");
                if(LOCATIOnManager != null)
                {
                    netLOCATIOn = LOCATIOnManager.getLastKNownLOCATIOn(LOCATIOnManager.NETWORK_PROVIDER);
                    if(netLOCATIOn != null)
                    {
                        latitude = netLOCATIOn.getLatitude();
                        longitude = netLOCATIOn.getLongitude();
                        speed = netLOCATIOn.getSpeed();
                    }
                }
            }

            // if gps is enabled get lat/lng using that as well //
            if(isGPSEnabled)
            {
                if(gpsLOCATIOn == null)
                {
                    LOCATIOnManager.requestLOCATIOnupdates(
                            LOCATIOnManager.GPS_PROVIDER,this);
                    Logging.Debug("GPSTracker","GPS Enabled");

                    if(LOCATIOnManager != null)
                    {
                        gpsLOCATIOn = LOCATIOnManager.getLastKNownLOCATIOn(LOCATIOnManager.GPS_PROVIDER);
                        if(gpsLOCATIOn != null)
                        {
                            latitude = gpsLOCATIOn.getLatitude();
                            longitude = gpsLOCATIOn.getLongitude();
                            speed = gpsLOCATIOn.getSpeed();                             
                        }
                    }
                }
            }

非常感谢任何见解.谢谢.

@H_450_12@

解决方法

Android,Apple和其他公司可以访问庞大的数据库,在这里他们可以查找Wlan-Device-Id(WLAN路由器的Mac-adress)到lat / lon坐标.
因此,当您的手机检测到“已知”WLAN时,它可以:
– 查找Wlan-id的本地缓存以进行协调,或者如果您有互联网连接,它可以通过该数据库连接并查询Wlan id的坐标.

仍然是他们拥有WLAN-id坐标的问题?
可能是您第一次在连接WLAN时激活GPs.

SkyHook就是提供这种数据的公司.

@H_450_12@ @H_450_12@

大佬总结

以上是大佬教程为你收集整理的android – 当使用LocationManager时,为什么有Wifi但没有连接帮助网络位置?全部内容,希望文章能够帮你解决android – 当使用LocationManager时,为什么有Wifi但没有连接帮助网络位置?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。