Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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_Location - Fatal编程技术网

如何检测Android设备是否在室内/室外?

如何检测Android设备是否在室内/室外?,android,location,Android,Location,我正在开发一个应用程序,它融合了来自不同提供商的位置信息,希望它能提供比我简单使用谷歌API更准确的位置信息。然而,供应商的选择将取决于室内或室外的手机(例如,网络与GPS) 检测设备是室内还是室外的最佳方法是什么?我的第一个想法是使用光传感器,可能还有手机信号强度和WiFi(如果附近有WiFi网络,很可能设备是室内的),但我不知道这些传感器的重量/可信度 编辑:这是我的硕士论文,其中的目标是从Android API中的不同提供商(GPS、网络和被动)获取位置,并将它们与公式融合。根据手机是室内

我正在开发一个应用程序,它融合了来自不同提供商的位置信息,希望它能提供比我简单使用谷歌API更准确的位置信息。然而,供应商的选择将取决于室内或室外的手机(例如,网络与GPS)

检测设备是室内还是室外的最佳方法是什么?我的第一个想法是使用光传感器,可能还有手机信号强度和WiFi(如果附近有WiFi网络,很可能设备是室内的),但我不知道这些传感器的重量/可信度


编辑:这是我的硕士论文,其中的目标是从Android API中的不同提供商(GPS、网络和被动)获取位置,并将它们与公式融合。根据手机是室内还是室外,不同位置的重量不同。还有一些参数,比如电池寿命是否优先(我还没有开发出这个公式)。

我认为你最好的选择是GPS信号本身,因为GPS很少穿透建筑物


在已建成的区域,您将在整个店铺内使用WiFi网络。

只需订阅这两个提供商,并使用
location.getProvider()
location.getAccurance()
当新位置到达时——检查它是否比以前的位置更准确。

这听起来像是一个非常困难的问题,有很多奇怪的边缘。如果你能找到一种不同的方法来制作你的应用程序,我会这么做。如果你的WiFi热点有很好的户外覆盖,或者你所在的地区有市政WiFi,那么这种情况就排除了使用WiFi来确定你是在室内还是室外的可能性。如果你只是想获得更高的定位精度,那么几乎所有现代安卓(和苹果)设备都使用A-GPS,它已经结合使用GPS、手机、WiFi,在某些情况下还使用蓝牙信号来提高定位精度。轻的?白天/晚上,晴天/阴天,在阴影里/在我的口袋里,怎么样?星巴克/麦当劳的wifi通常至少在街对面检测到。网络覆盖范围可能因多种原因而有所不同。如果您离地面有几层,GPS高度可能会有所帮助。@njzk2 GPS高度显示的是WGS84表面以上的高度,而不是当地的海拔高度ground@njzk2如果我住在一个丘陵城镇,这样的操作不会有帮助:)GPS有时会很容易穿透一层楼高的房子。但GPS是最好的提示。