2012-03-21 147 views
-1

我需要估算android应用中路由器的方向和距离。例如,我可以知道我在我家的哪个房间。android检测距离路由器的距离

有什么想法?

+0

我不认为他们的任何可能性实现这一目标。 – 2012-03-21 10:31:28

+0

这是不可能的,除非你在每个房间安装路由器 – 2012-03-21 10:32:01

+0

这是不可能的;您的Android设备和路由器都不包含实施VOR/DME所需的硬件。 – mah 2012-03-21 10:32:29

回答

0

可能能够估计距离,但它不会是可靠的 - 要做的事情是在你的建筑物周围漫游,注意每个点的功率水平。然后,您可以根据当前功率水平计算出可能的位置。不过,你的距离不会得到单一的值,因为信号会受到墙壁和其他障碍物的影响。

自动化任何这些都留给读者作为练习:)。

+0

如果我在大厅里试过,没有墙壁怎么办? – 2012-03-21 12:56:24

+0

试试看看:)。由于反思,仍有可能出现异常读数。 – 2012-03-21 13:37:44

1

如果你去你家的每个房间,并对信号强度/速率等进行平均测量,基本上在每个房间和房间的各个部分尽可能多地参考以供参考,你可以做一个合理的估计。请注意,即使在单个房间的不同部分,所有这些信息也会有很大差异,但您最终可能会得到一个读数,其中显示可能性您在任何特定的房间中,基于可能的数量这个数据的组合出现在那个房间的不同部分。

对于一个相当不准确的结果来说,这是相当多的工作,但如果这就是你所追求的,那么作为一个开发项目会很有趣。原则是你需要参考信息并建立一个数据库,以不同的概率征求意见。

+0

谢谢。我会先在大厅里试一下,没有墙。 方向怎么样?任何想法?我可以估计手机从哪个方向获得信号吗? – 2012-03-21 12:55:26

+0

阿里,不是没有超过一个无线电接收器。 – deed02392 2012-03-21 12:58:57

0

不幸的是,我不认为有一种方法可以找到信号的方向,但有一个数学公式来计算距离。只是为了让你知道,如果Android设备和路由器之间没有任何物体(如20厘米的分歧),结果是相当可靠的,但即使你在路由器和设备之间,结果也不像真实距离10米。

这是公式

public double getDistance(){ 
    double exp = (27.55 - (20 * Math.log10(freqInMHz)) - signalLevelInDb)/20.0; 
    double res = Math.pow(10, exp); 
    return res; 
}