有没有办法确定用户是室内还是室外?我不关心室内地图,只是想知道用户是否在室内而无需询问用户。
如果用户在使用Wifi,则可能在室内,如果用户站在路上,则也可能在室外。
有没有办法确定用户是室内还是室外?我不关心室内地图,只是想知道用户是否在室内而无需询问用户。
如果用户在使用Wifi,则可能在室内,如果用户站在路上,则也可能在室外。
不,没有API可以检查这个。查看诸如Wifi之类的东西也没有帮助,因为用户可能使用移动热点并且目前正在户外。恐怕您必须询问用户他们是在室内还是室外,但是,您确定您正在解决正确的问题吗?
您无法确定用户是在室内还是室外(WIFI与蜂窝网络也无法帮助...当在室外时可以使用WIFI,而在室内时可以使用蜂窝网络)。我认为您能够得到的最接近的答案是(即使这个方法也有太多变数不可靠)记录GPS信号强度的变化(水平精度、垂直精度等)。
总之,没有编程方式可以检查这一点。
使用可见GPS卫星数量是一种指标,在iOS上无法获取该属性。
以dB为单位测量的GPS信号强度是另一个指标,但在iOS API中不可用。
接下来是HDOP值,在iOS上也不可用。
剩下的是水平精度,这在某种程度上是以上指标的组合。
其他简单的解决方案:
户外人员通常在移动:检查GPS速度
复杂的解决方案可能超出了您的范围:
为导航和其他应用程序构建的数字路线图存储了内城房屋的坐标(并非所有城市),您可以检查位置是否在此类多边形内,并结合准确性值进行判断。
我估计使用简单的解决方案就可以完成您的任务,从而获得90-95%的正确检测率。
CMMotionActivityManager
来自CoreMotion
框架。它提供了一个CMMotionActivity
,其中包括一些运动活动,例如汽车
或骑车
。根据您的观点,您可以将汽车定义为室外(或室内)。骑自行车
并不是真正有效的, 尽管它是API的一部分。