Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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中NetworkManager类提供的信息的澄清_Android_Geolocation_Triangulation_Location Based Service - Fatal编程技术网

关于Android中NetworkManager类提供的信息的澄清

关于Android中NetworkManager类提供的信息的澄清,android,geolocation,triangulation,location-based-service,Android,Geolocation,Triangulation,Location Based Service,我想检测没有互联网连接的Android移动设备的位置。 唯一的选择是,要使用来自附近基站的信息,我想知道TelephonyManager类是否可以用于此目的(假设数据库中有可用的基站横向和纵向位置) 我知道TelephonyManager.getNeighbouringCellInfo()提供了NeighbouringCellInfo的列表 我的问题是,这个方法返回多少NeiguringCellInfo?这个信息可以用来进行三角测量吗 如果没有,我能否使用SIM Toolkit获取所需信息并执行

我想检测没有互联网连接的Android移动设备的位置。 唯一的选择是,要使用来自附近基站的信息,我想知道TelephonyManager类是否可以用于此目的(假设数据库中有可用的基站横向和纵向位置)

我知道TelephonyManager.getNeighbouringCellInfo()提供了NeighbouringCellInfo的列表

我的问题是,这个方法返回多少NeiguringCellInfo?这个信息可以用来进行三角测量吗

如果没有,我能否使用SIM Toolkit获取所需信息并执行三角测量


请随时提供任何相关信息,因为这对我的程序非常有用。

首先,你当然不能做三角测量。三角测量依赖于角度。我想你的意思是三边测量。相比之下,三边测量依赖于距离

要基于距离进行三边测量,您需要一个包含具体坐标的数据库,以及到这些坐标中三个或更多坐标的距离(在本例中为细胞塔)。但是,如果您查看
NeightringCellInfo
的文档,您会发现您没有获得距离读数。你会得到RSSI。RSSI和距离之间的关系不是线性的,也不是很好理解或非常精确。根据天线方向、天气条件等的不同,它可能会有很大的变化。。。因此,如果您只需要选择三个单元格,并使用它们的相对RSSI对用户进行三边测量,那么最终将证明非常容易出错(即,大多数情况下几乎完全错误)。除此之外,我不认为
getneighborringcellinfo
总能保证返回三个或更多的塔(您可以查看低级代码的实现)。因此,我的结论是,你能做的最好的事情就是找出哪座塔的强度最高,然后说你有点“接近”,我真的怀疑你能做得更好

相反,一个更好的选择,我相信你已经想到了,就是使用GPS,但我猜你有理由不这么做

我不确定您是否也知道,但是
TelephonyManager
有一个实现,也可以为您提供位置更新:


(顺便说一句,我曾经做过一个类似的三边测量项目,根据我的经验,如果没有高精度的接收器和测量,它根本不起作用。我也有原始的RSSI数据,即使在中短距离内,数据中的错误也是无法接受的。)

嗨,非常感谢您的回复。非常感谢。然而,有一件事仍然不清楚,那就是TelephonyManager提供的位置更新,它是三边跟踪还是只返回设备连接到的基站的位置?