是否可以根据wifi信号强度确定iPhone或Android设备的位置?

时间:2011-08-16 06:01:50

标签: android ios geolocation

我有兴趣了解智能手机在某个建筑物中如何根据某些地区的无线网络强度进行定位。

Wifi正变得无处不在,至少在西方世界,如果你拥有一部智能手机,你很可能在任何时候都至少有一个靠近你的wifi中心。你的邻居很可能也拥有一个,因此你会有不同程度的接收和质量的wifi点。

如果iOS和Android允许以实时速度从wifi信号访问非常原始的数据,开发人员可以提出算法来规范化和分析数据,以便非常清楚地了解对象在给定空间中的位置。确实,仅通过侧向转动手机就可以发出不同的信号强度读数,但可以先手动校正,然后通过手动校正收集数据并将其应用于更通用的模式,从而获得高精度从长远来看。

这可能有很多应用程序,例如一个应用程序,它识别您正在从厨房移动到起居室并将自动切换到remote control模式,以便您可以控制电视和诸如此类的东西。移动到卧室,完全更改配置文件以进入静音模式并显示时钟作为屏幕保护程序。

目前的API可以实现吗?如果没有,那么需要什么才能获得这类数据以及分析它并将其标准化以使其准确区分房间的难度?

澄清:

  • 我不是工程师或数学家,更像是UI / UX设计师/开发人员(主要是JS)
  • 我在问这是否可以使用当前的API,以及理论上是否可能,如果当前的API目前不支持它

2 个答案:

答案 0 :(得分:4)

是的,如果您做出一些假设,这确实是一个可解决的问题。

Android操作系统具有分析来自接入点的信号dBm所需的功能(对于那些感兴趣的开发者,请参阅WifiManager上的BroadcastReceiver和SCAN_RESULTS_AVAILABLE_ACTION意图)。

当信号远离AP时,信号以可量化的速率降低。如果您知道信号离开AP(盒子上的规格)时的信号强度以及当它到达您的设备时,您可以得出信号必须已经移动的距离,以使其降低程度。

这是假设发挥作用的地方。你和AP之间的任何东西都会对信号衰减产生影响,所以如果你进去,比如说你的起居室,你和你的接入点之间有两面墙,信号会以不同的状态到达,如果你当时采取的话用大锤敲打你和AP之间的两面墙,然后进行测量。最好只在没有阻挡你和AP之间路径的地方使用它。

此外,您需要至少3个AP才能到达2D空间中的单个点。我认识的大多数人家中都没有设置3个AP,因此您需要向邻居询问其AP的纬度/长度位置。

总而言之,一个可解决的问题,但在你家的环境中不一定能很好地工作,除非你要包括额外的感官数据(房子的三维地图,冗余的AP,加速度计,GPS等)提出解决方案。

答案 1 :(得分:0)

不,使用当前的API无法做到这一点。

我想,至少可能,你可以从接入点获得距离,但除非它们是不动的点,否则有什么好处。

接入点需要锁定或加载GPS,以便您也可以知道它们的位置。因为目前,我可以将我的Wifi路由器移动到我想要的任何地方......