我正在考虑实现一个基于信标的应用程序,以实现一些基于信标位置的位置跟踪。据我所读和理解,信标监控是相当无害的电池寿命,但范围肯定是一个更大的打击电池寿命。
是否有任何规格或技巧/技术,以尽量减少电池消耗的范围?与GPS定位跟踪相比,测距时的电池寿命如何?
发布于 2015-03-21 18:12:34
信标测距比GPS跟踪使用更少的电池,因为它为蓝牙低能无线电接收机和GPS接收器提供了动力。虽然,我没有具体的数字,全球定位系统接收器是更多的电力需求。
测距和监控在功耗上的差异是有点混浊的,iOS和Android的不同之处。在iOS上,只有在前景中才允许进行测距,除非您有特殊的后台权限(只有当您有导航应用程序时才能获得该权限)。当在前台完成时,测距所用的功率要比屏幕少得多,所以它是微不足道的。
Constant 在后台使用(可以在安卓系统上使用,也可以在iOS上使用特别许可),将以类似于手机待机的速度耗尽电池。换言之,预计,一部正在进行测距的手机的电池消耗速度,将是仅在屏幕关闭、但手机处于空闲状态时,电池消耗速度的两倍。
一个重要的警告是,仅仅因为您启用了一个应用程序的范围并将其移到后台,并不意味着它将不断地进行范围。如前所述,iOS通常会在应用程序离开前台后5秒钟内关闭。类似地,使用Android Beacon Library的安卓设备将节流背景,每5分钟只发生10秒。在Android上,您必须具体地将其配置为其他操作,而在iOS上,您必须提供特殊权限。
在测距时,您可以做哪些特殊的来最小化电池消耗的?别老是这么做。接受在手动上或节流阀范围以上的默认值,所以您只能在10%或更少的时间范围内。
背景中的监视比恒定范围的使用更少的功率,因为它并不总是在进行主动扫描。iPhone 5+和Android 5+设备使用蓝牙芯片中的硬件辅助来触发信标模式,而无需进行活动扫描。iPhone 4S和Android4.x设备自动节流扫描,以保持电池使用率低。
发布于 2018-03-30 13:58:02
是否有任何规格或技巧/技术,以尽量减少电池消耗的范围?与GPS定位跟踪相比,测距时的电池寿命如何?
我没有在iOS中工作过,但我将在安卓上分享我的2分钱。
对于Android,可以使用BackgroundPowerSaver.Just实例化它。就像-
...
import org.altbeacon.beacon.powersave.BackgroundPowerSaver;
public class MyApplication extends Application {
private BackgroundPowerSaver backgroundPowerSaver;
public void onCreate() {
super.onCreate();
backgroundPowerSaver = new BackgroundPowerSaver(this);
}
}来源: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分钟运行一次。
如果不需要这些默认值,也可以在BeaconManager中设置自定义扫描时间。
然而,根据我所看到的,位置跟踪比BLE扫描需要更多的电池。因此,将位置更新保持在所需的最小值,并依赖于最后知道的位置,除非您需要非常实时的数据。详细讨论- https://developer.android.com/guide/topics/location/strategies.html
https://stackoverflow.com/questions/29185576
复制相似问题