信标测距与GPS追踪的电池使用情况

6
我正在考虑实现一个基于信标的应用程序,以基于信标位置进行一些位置跟踪。根据我所读和理解的内容,信标监视对电池寿命影响较小,但测距肯定会更大程度地消耗电池寿命。
在进行测距时,有没有任何规格或技巧/技术可以最小化电池消耗?与GPS位置跟踪相比,测距时的电池寿命如何?
2个回答

7
Beacon ranging使用的电量比GPS跟踪要少得多,因为它启动了Bluetooth Low Energy无线电接收器而不是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 设备自动限制扫描,以保持低电池使用率。

是否有苹果定义的“导航应用程序”?例如,如果我想使用该应用程序跟踪用户在购物中心或百货商店中的路径,那么这是否被视为导航?并且使用该应用程序提供方向信息(例如:右转前往Target、Walmart,左转前往Home Depot等)。监视功能很棒,但据我所知,仅在进入/退出区域时才会触发。但不会穿过区域内的信标(例如:如果区域仅由UUID定义,则当您穿过不同的major/minor时不会触发)。 - Eric B.
欢迎来到AppStore审核流程的不透明世界!我认为您描述的用例应该会合格,但我不是苹果公司的员工,经常会对被拒绝的内容感到惊讶。 - davidgyoung
1
当然,问题在于构建您的应用程序时期望它能够通过资格认证,但如果您的应用程序无法实现您预期的功能,则会导致整个商业计划破产。 - Eric B.

0
有什么规格或技巧/技术可以在测距时最小化电池消耗吗?与GPS定位跟踪相比,电池寿命如何?
我没有在iOS部分工作过,但会分享一下我的意见。
对于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中设置自定义扫描时间。

来源:https://github.com/AltBeacon/android-beacon-library/blob/master/src/main/java/org/altbeacon/beacon/BeaconManager.java

然而,根据我所看到的,位置跟踪比BLE扫描消耗更多的电池。因此,请尽可能将位置更新保持最少,并依赖于上次已知的位置,除非您需要非常实时的数据。详细讨论 - https://developer.android.com/guide/topics/location/strategies.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接