网络位置提供商需要互联网来确定位置吗?

Ani*_* VK 5 android locationmanager android-location

使用网络提供商进行位置提取时,Android设备是否需要互联网?我看到很少有文章说它没有互联网,很少说它需要互联网.

我正在研究Android内部如何进行位置提取(而不是代码).

文章说我们需要互联网:设备捕获小区ID和wifi热点并将其发送到谷歌服务器.谷歌服务器返回位置信息.这些文章说我们需要互联网来获取位置.

很少有文章说使用细胞三角测量确定位置,不需要互联网.

我试图做测试以确认相同.但是测试结果令人困惑,无法从中推断出任何东西.

设备配置:我关闭了互联网,wifi扫描和GPS.这意味着设备只有蜂窝信号.应用程序每分钟捕获一次位置.

测试结果1:

  • 我无法使用上述设备配置获取位置.我跑了这个测试15分钟.
  • 然后我打开3G数据,我就到了这个位置.
  • 发布这个,我再次关闭3G,我仍然能够获得不同精度的位置.

测试用例2 :(续测试用例1)

  • 在测试用例1之后,我在办公地点始终如一地获得该位置.
  • 然后我回家了,当我检查地下室(-1楼)的位置时,我有一个位置,第一次阅读精度为~900m,第二次和其他读数没有位置.这持续了20多分钟.
  • 20分钟后,我开始接收位置.

网络位置究竟如何运作.我更关注Android内部如何获取位置而不是代码.

所以这是我的问题:

  1. 它是否通过cellid和wifi热点并获取位置(使用互联网)?
  2. 它是否进行细胞三角测量?
  3. 它是否缓存数据并使用加速计和指南针来确定没有互联网的位置?

(虽然stackoverflow中有类似的问题.它们更多地是代码而不是Android内部工作.因此发布此问题)

san*_*osh 3

你的测试描绘了这张图片

\n\n

在为 Android 开发位置感知应用程序时,you can utilize GPS and Android\'s Network Location Provider to acquire the user location. Although GPS is most accurate, it only works outdoors, it quickly consumes battery power, and doesn\'t return the location as quickly as users want.

\n\n

Android\'s Network Location Provider determines user location using cell tower and Wi-Fi signals,以在室内和室外工作的方式提供位置信息,响应速度更快,并且使用更少的电池电量。要在应用程序中获取用户位置,您可以同时使用 GPS 和网络位置提供程序,或仅使用其中之一。

\n\n
If you are using both NETWORK_PROVIDER and GPS_PROVIDER, then you need to request only the permission ACCESS_FINE_LOCATION \n\nACCESS_COARSE_LOCATION includes permission only for NETWORK_PROVIDER\n
Run Code Online (Sandbox Code Playgroud)\n\n

根据您使用的权限可能会产生不同的结果

\n\n

检查这些网站Android 使用的位置策略

\n\n

取决于 Anil vk 的评论

\n\n

网络 \xe2\x80\x93>(AGPS、CellID、WiFi MACID) \n:此提供商根据手机信号塔和 WiFi 接入点的可用性确定位置。通过网络查找来检索结果。需要任一权限android.permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION.

\n\n

答案是,yes这取决于手机信号塔的信号强度来获得准确的结果,您可以通过使用不同的方式查看此网站的准确性和电池耗尽问题。

\n