Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 网络位置提供商是否需要互联网来确定位置?_Android_Android Location_Locationmanager - Fatal编程技术网

Android 网络位置提供商是否需要互联网来确定位置?

Android 网络位置提供商是否需要互联网来确定位置?,android,android-location,locationmanager,Android,Android Location,Locationmanager,使用网络提供商获取位置时,Android设备是否需要互联网?我看到很少有文章说它在没有互联网的情况下工作,也很少有文章说它需要互联网 我正在研究Android内部如何进行位置获取(而不是代码) 文章说我们需要互联网:该设备捕获手机id和wifi热点,并将其发送到谷歌服务器。谷歌服务器返回位置信息。这些文章说我们需要互联网来获取位置 很少有文章说位置是通过细胞三角测量确定的,不需要互联网 我已经试着做了测试来证实这一点。但测试结果令人困惑,无法从中推断出任何东西 设备配置:我已关闭互联网、wifi

使用网络提供商获取位置时,Android设备是否需要互联网?我看到很少有文章说它在没有互联网的情况下工作,也很少有文章说它需要互联网

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

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

很少有文章说位置是通过细胞三角测量确定的,不需要互联网

我已经试着做了测试来证实这一点。但测试结果令人困惑,无法从中推断出任何东西

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

测试结果1:

  • 我无法使用上述设备配置获取位置。我做了15分钟以上的测试
  • 然后我打开了3G数据,我得到了位置
  • 在这之后,我再次关闭了3G,我仍然能够以不同的精度获得位置
测试用例2:(在测试用例1之后继续)

  • 在测试用例1之后,我一直在办公室位置获取位置
  • 然后我回家,当我检查地下室(-1层)的位置时,我得到的第一次读数的准确度为900m,第二次和进一步读数的准确度为900m。这持续了20多分钟
  • 20分钟后,我开始接收地点
网络定位的具体工作原理。我更关注的是Android内部如何进行位置获取,而不是代码

下面是我的问题:

  • 它是否通过手机ID和wifi热点并获取位置(使用 互联网)
  • 它做细胞三角测量吗
  • 它是否缓存数据 并使用加速计和指南针确定位置,无需 互联网
  • (虽然stackoverflow中也有类似的问题。它们更多的是代码,而不是Android内部工作。因此发布了这个问题)

    为Android开发位置感知应用程序时,
    您可以利用GPS和Android的网络位置提供商获取用户位置。虽然GPS是最精确的,但它只在户外工作,它会很快消耗电池电量,并且不会像用户希望的那样快速返回位置。

    Android的网络位置提供商使用手机发射塔和Wi-Fi信号确定用户位置
    ,提供位置信息的方式可以在室内和室外工作,响应速度更快,并且使用更少的电池电量。要在应用程序中获取用户位置,您可以同时使用GPS和网络位置提供程序,也可以仅使用一个

    If you are using both NETWORK_PROVIDER and GPS_PROVIDER, then you need to request only the permission ACCESS_FINE_LOCATION 
    
    ACCESS_COARSE_LOCATION includes permission only for NETWORK_PROVIDER
    
    根据您使用的权限,可能会产生不同的结果

    检查这些和

    取决于Anil vk的评论

    网络–>(AGPS、CellID、WiFi MACID) :该提供商根据基站和WiFi接入点的可用性确定位置。通过网络查找检索结果。需要android.permission.ACCESS\u粗略\u位置或android.permission.ACCESS\u精细\u位置中的任何一个权限。


    答案是
    这取决于cell tower的信号强度,以获得准确的结果。您可以通过使用不同的方法查看准确度和电池消耗问题。

    您是否在测试时添加了访问粗略位置和访问精细位置这两个权限您需要根据这条评论:(但是网络提供商可能会使用缓存?)。是的,我看过这些文章。但是,没有一个能解释我们是否可以仅通过蜂窝数据(没有互联网)获得位置。我正在寻找更多的网络位置提供商如何工作。