我有一个每隔几分钟获取位置更新的应用程序。当我的手机连接到 wifi/3g 时,这非常有用。但是,当我禁用 Wi-fi/数据连接时,它会非常断断续续,也就是说,如果我移动到某些位置,它工作得很好,但有时它就是不会从手机信号塔接收信号。
这可能是因为信号不好或者手机确实需要连接到 3G/Wi-fi 才能让网络提供商工作?
我不想求助于 GPS,因为尽管它非常准确,但该设备需要与卫星联系才能进行修复。另外,如果无法修复,这会破坏应用程序吗?
我有一个每隔几分钟获取位置更新的应用程序。当我的手机连接到 wifi/3g 时,这非常有用。但是,当我禁用 Wi-fi/数据连接时,它会非常断断续续,也就是说,如果我移动到某些位置,它工作得很好,但有时它就是不会从手机信号塔接收信号。
这可能是因为信号不好或者手机确实需要连接到 3G/Wi-fi 才能让网络提供商工作?
我不想求助于 GPS,因为尽管它非常准确,但该设备需要与卫星联系才能进行修复。另外,如果无法修复,这会破坏应用程序吗?
网络提供商需要连接到网络才能工作。它的算法是检测它可以看到的塔和它们的信号强度,并尝试对一个位置进行三角测量。为了进一步准确,它还使用 Wifi SSID。如果它没有连接到这些来源,它就无法告诉你你在哪里。
是的,网络提供商需要互联网连接。该设备可以从该区域的蜂窝信号和 wifi 热点获取一些信息,但无法检测到位置。该设备使用此信息查询后端服务器,然后该服务器可以查找其数据库并给出大致位置。为了最小化网络事务,它可以预取一些位置信息。如果设备移出此“预取”区域,则需要再次连接互联网。
这个问题已经在 Stackoverflow 中被问过(这就是我首先知道它的方式),但我找不到它。搜索它,它很好地解释了网络提供商的工作原理。