粗糙位置是否比Android上的Geofenses使用更少的电池?

粗糙位置是否比Android上的Geofenses使用更少的电池?,android,performance,gps,Android,Performance,Gps,我试图知道您的设备何时离开您的家,但我不需要精确的GPS定位或高更新率(即,如果我知道用户离开家后仅10分钟就出门了,并且他已经在100米之外,这也没关系) 两种解决方案中哪一种应该使用更少的电池(两者都应该使用比普通GPS定位监听器更少的电池) 具有PRIORITY\u BALANCED\u POWER\u准确性 第一个是肯定使用更节省电池的解决方案,我可以控制频率低 第二个是一个更高级别的API,它只做我想要的,但我不知道它做什么,它看起来会在用户在地理围栏内时不断使用良好的GPS位置(记

我试图知道您的设备何时离开您的家,但我不需要精确的GPS定位或高更新率(即,如果我知道用户离开家后仅10分钟就出门了,并且他已经在100米之外,这也没关系)

两种解决方案中哪一种应该使用更少的电池(两者都应该使用比普通GPS定位监听器更少的电池)

  • 具有
    PRIORITY\u BALANCED\u POWER\u准确性
  • 第一个是肯定使用更节省电池的解决方案,我可以控制频率低

    第二个是一个更高级别的API,它只做我想要的,但我不知道它做什么,它看起来会在用户在地理围栏内时不断使用良好的GPS位置(记住,我想减少电池使用)


    关于电池的使用,有人对此有一些见解吗?

    这里的答案可能是多种因素的组合。该视频详细介绍了GPS和定位芯片如何消耗设备中的电池。(将详细说明无线电芯片的工作原理。)

    基本上,使用a将允许您缩小精度与功耗之比。基本上,分辨率越低,电池消耗越少

    知道这一点,我建议在进行高功率检查之前,先进行一系列低功率检查作为早期警告:

  • 用于确定移动设备是否位于蜂窝网络上。如果是的话,他们很有可能已经离开了wifi边界
  • 检查他们连接的WiFi是否是普通家庭WiFi(这样你就不会误认为咖啡店WiFi是家庭WiFi)
  • 在支票上使用退票制度。如果用户在家,他们很可能会在家呆上一段时间;所以,缩小检查位置的频率
  • 如果用户在蜂窝网络上,请使用课程位置确定您是否在已知家庭位置的100英尺范围内
  • 使用精细的位置检查,通过课程位置检查解决问题/角落案例
  • 当所有其他方法都失败时,进行地理围栏检查;但一旦你解决了问题,就把它关掉

  • 基本上,您希望耗电最少的选项能够最频繁地运行,并且在解决位置差异时只使用耗电最多的选项。

    文档中有一些提示,Google希望您在您的用例中使用地理围栏(或新的感知API)

    第一个方法需要从LocationRequest和

    活动应强烈考虑在进入后台时删除所有位置请求(例如,在OnPAUSEY()上),或者至少将请求替换为较大的间隔和较低的质量。

    这表明此API设计为仅在应用程序处于活动状态时使用,因此称为“请求”术语

    谷歌很快意识到,很多应用程序(包括他们自己的Google Now)都在后台请求位置,他们希望通过将请求汇集和共享的方式来改进它,因此他们创建了地理围栏,并最终创建了感知API

    根据围栏API文件

    Fence API允许应用程序对用户的当前情况做出反应,并在满足上下文条件组合时提供通知。例如,“当用户正在行走且耳机已插入时,请告诉我”。注册围栏后,围栏API可以向应用程序发送回调,即使应用程序未运行


    因此,在您的使用案例中,如果您的应用程序未运行,您应该使用第二种方法。

    或检查与家庭路由器的无线连接是否丢失。@greenapps是的,这是其中的一部分,但还不够,因为Wi-Fi可能无法始终从房子的每个房间访问。手动操作时,您的步骤很好。我想知道为什么Google Play Services的GeoFenging已经在做这些(或大部分)了。挖掘之后,Google Play Services GeoFenging似乎也以某种形式做了这些事情,结果是电池使用率低。