我正在考虑实施基于信标的应用,根据信标位置进行一些位置跟踪。从我所阅读和理解的内容来看,信标监控对电池寿命来说相当无害,但绝对会对电池寿命造成更大的影响。
在测距时是否有任何规格或技巧/技巧可以最大限度地减少电池消耗?测距时的电池寿命与GPS位置跟踪相比如何?
答案 0 :(得分:6)
信标测距比GPS跟踪使用更少的电池,因为它为蓝牙低功耗无线电接收器和GPS接收器供电。虽然我没有具体的数字,但GPS接收器的耗电量更大。
测距和监控之间的功耗差异有点混乱,并且在iOS和Android之间有所不同。在iOS上,除非您具有特殊的后台权限(只有拥有导航应用程序才能获得),因此只允许在前台进行测距。在前台完成时,测距使用的功率远低于屏幕,因此它无关紧要。
常量在后台运行(可在Android和iOS上获得特殊权限)会以类似于手机待机的速率耗尽电池。强调>换句话说,预计一部手机的电池电量将比一部电话快一倍,而电话只是在屏幕关闭但电池无线电开启的情况下闲置。
一个重要的警告是,仅仅因为你为一个应用程序启用测距并将其移动到后台,并不意味着它会不断变化。如前所述,iOS通常会在应用程序离开前台后五秒内关闭。同样,使用Android Beacon Library的Android设备会限制背景范围,每五分钟只会发生10秒。在Android上,您必须专门配置它,否则在iOS上您必须提供特殊权限。
在测距时,您可以做什么特别的技巧以最大限度地减少电池消耗?不要经常这样做。 接受上述默认设置或手动限制范围,因此您只能在10%或更短的时间内完成。
在后台进行监控所使用的功耗低于常量范围,因为它不会一直进行主动扫描。 iPhone 5+和Android 5+设备在蓝牙芯片中使用硬件辅助来触发信标模式,而无需进行主动扫描。 iPhone 4S和Android 4.x设备会自动限制扫描,以降低电池使用率。
答案 1 :(得分:0)
在测距时是否有任何规格或技巧/技巧可以最大限度地减少电池消耗?测距时的电池寿命与GPS位置跟踪相比如何?
我没有在iOS部分工作,但会在Android上分享我的2美分。
对于Android,您可以使用BackgroundPowerSaver
。只需实例化它即可。像 -
...
import org.altbeacon.beacon.powersave.BackgroundPowerSaver;
public class MyApplication extends Application {
private BackgroundPowerSaver backgroundPowerSaver;
public void onCreate() {
super.onCreate();
backgroundPowerSaver = new BackgroundPowerSaver(this);
}
}
来源:https://altbeacon.github.io/android-beacon-library/battery_manager.html
幕后使用的值是 -
public static final long DEFAULT_FOREGROUND_SCAN_PERIOD = 1100;
public static final long DEFAULT_FOREGROUND_BETWEEN_SCAN_PERIOD = 0;
public static final long DEFAULT_BACKGROUND_SCAN_PERIOD = 10000;
public static final long DEFAULT_BACKGROUND_BETWEEN_SCAN_PERIOD = 5 * 60 * 1000;
因此前景扫描中的应用程序在循环中运行1.1秒,而对于背景,它每5分钟运行10秒。
如果您不想要这些默认设置,您也可以在BeaconManager中设置自定义扫描时间。
然而,基于我所看到的,位置跟踪比BLE扫描需要更多的电池。因此,除非您需要非常实时的数据,否则请将位置更新保持在最低限度,并依赖于最后知道的位置。详细讨论 - https://developer.android.com/guide/topics/location/strategies.html