Android Wear:BleLEScan耗尽我的电池
我正在开发一款需要佩戴数据的应用程序。Android Wear:BleLEScan耗尽我的电池
其中一种数据类型是BLE。
我使用BleLeScan:
BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = bluetoothManager.getAdapter();
if (Build.VERSION.SDK_INT >= 21) {
mLEScanner = mBluetoothAdapter.getBluetoothLeScanner();
settings = new ScanSettings.Builder()
.build();
filters = new ArrayList<ScanFilter>();
}
mLEScanner.startScan(filters, settings, mScanCallback);
BLELeScan被耗尽我穿的电池。我知道这是因为我使用BLE扫描进行测试,没有它。差异是巨大的,没有BLE扫描电池每小时消耗约3%,而BLE扫描则> 16%。
如何优化BLELeScan的电池消耗?我需要连续运行扫描。
回答:
您应该设置一个扫描过滤器,以仅匹配您要查找的内容。否则,CPU将在不需要时唤醒。
另请注意,功耗很大程度上取决于您的Android设备和蓝牙芯片。
如果您只查找要连接的特定配对设备,请考虑使用autoConnect = true直接连接它。
回答:
显然,正如答案和评论中指出的那样,BLE扫描会消耗大量的电池电量。它消耗多少?它将取决于设备。
我通过运行扫描12秒/分钟,然后停止扫描下一个48秒,优化了应用程序的电池消耗。 48秒后,我正在重新启动扫描。
请注意,我没有使任何支持对象为空,我只是在12秒后停止扫描。
这种方法帮助我节省了超过50%的电池消耗。
以上是 Android Wear:BleLEScan耗尽我的电池 的全部内容, 来源链接: utcz.com/qa/257362.html