使用GPS检测android设备是否在室内

使用GPS检测android设备是否在室内,android,location,android-gps,Android,Location,Android Gps,我正在编写的应用程序需要以某种方式检测android设备是在室内还是室外。我的目标是检测用户是否尽快离开某个建筑物。 我尝试使用用户位置信号。我不会启动任何GPS采样,因为我不想浪费太多的电池电量,所以检测用户是否离开建筑物的唯一方法是等待他离地点足够远,然后使用wifi或手机采集的位置信号。 问题是我花了很长时间才发现用户离开了大楼 我知道当用户在室内时,他的GPS信号较弱。我是否可以使用GPS状态来确定用户是在室内还是室外?启动GPS定位样本是否会造成浪费 谢谢。我不认为你可以用FusedL

我正在编写的应用程序需要以某种方式检测android设备是在室内还是室外。我的目标是检测用户是否尽快离开某个建筑物。 我尝试使用用户位置信号。我不会启动任何GPS采样,因为我不想浪费太多的电池电量,所以检测用户是否离开建筑物的唯一方法是等待他离地点足够远,然后使用wifi或手机采集的位置信号。 问题是我花了很长时间才发现用户离开了大楼

我知道当用户在室内时,他的GPS信号较弱。我是否可以使用GPS状态来确定用户是在室内还是室外?启动GPS定位样本是否会造成浪费


谢谢。

我不认为你可以用FusedLocationProvider做你想做的事,因为它使用WiFi和手机塔三角测量。您需要使用
LocationManager

它也很难发现你是否在里面,据我所知,没有明确的方法来做到这一点。然而,你可以做出明智的猜测

在检测“微弱”GPS信号方面,您可以检查以下几点:

  • 可供您使用的卫星数。如果数字很低,那么你要么在室内,要么在卫星覆盖率很差的地方
  • 接收到的GPS位置的水平精度。如果该值很高,则可能被视为精度差,这可能是因为您在内部
  • 一段时间内未收到任何位置。这可能是因为你在里面

您是否考虑过像GPS一样进行其他检查,因此如果他们连接到WiFi,则会增加他们在室内的可能性?

是的,我也在使用WiFi连接/断开连接。您知道检测GPS信号的强度在电池电量方面是否昂贵吗?您必须从
LocationManager
请求位置更新。根据我的经验,这并不昂贵。如果你把它打开5分钟,然后在你有足够的信息做出明智的决定后关闭,它的影响可以忽略不计,尤其是在现代设备上。