我正在使用Android BLE API运行后台服务,24/7扫描BLE设备。我的服务使用START_STICKY运行。当我发现特定的设备时,我会进行相关工作。
我的问题是:当我的设备进入深度睡眠模式时,我是否仍然可以收到ScanCallback,或者我需要获取PARTIAL_WAKE_LOCK来防止CPU进入深度睡眠以获得ScanCallback?
谢谢。
public class MYService extends IntentService {
public void onCreate() {
super.onCreate();
Log.e("TAG","onCreate");
BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();
BluetoothLeScanner lEScanner = bluetoothAdapter.getBluetoothLeScanner();
ScanSettings settings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();
List<ScanFilter> filters = new ArrayList<>();
ScanFilter.Builder sfBuilder = new ScanFilter.Builder();
sfBuilder.setDeviceName(DEVICE_NAME);
sfBuilder.setServiceUuid(ParcelUuid.fromString(ServiceUUID_D1));
filters.add(sfBuilder.build());
lEScanner.startScan(filters,settings,mScanCallback);
}