1
私はBLEデバイスを24時間いつでもスキャンするバックグラウンドサービスを、Android BLE APIを使用して実行しています。私のサービスはSTART_STICKYを使用して実行しています。特定のデバイスを見つけると、私は自分の仕事をします。BLEバックグラウンドスキャン
質問:私のデバイスが深いスリープ状態になってもScanCallbackを取得するか、ScanCallbackを取得するためにCPUが深いスリープ状態にならないようにPARTIAL_WAKE_LOCKを取得する必要がありますか?
ありがとうございました。
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);
}
ここで問題となるのは、サービスが強制終了されるということですか? PARTIAL_WAKE_LOCKを取得すると、何らかのトリックが行われませんか? –