Я использую функцию Android BLE и мой код следующий.
Я создал два метода обратного вызова ( onLeScan и ScanCallback ), как для версий Android> KITKAT Я использую ScanCallback и в версиях KITKAT или перед ними, я Я использую onLeScan обратный вызов.
// Implement BluetoothLeScanner for deprecation of onLeScan for Target android L // 25-12-14
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH && mBluetoothAdapter != null) {
mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner();
ScanSettings.Builder scanSettingsBuilder = new ScanSettings.Builder();
scanSettingsBuilder.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY);
mScanSettings = scanSettingsBuilder.build();
}
if (mBluetoothAdapter != null && mBluetoothAdapter.isEnabled()) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH) {
if (mBluetoothLeScanner == null)
mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner();
mBluetoothLeScanner.startScan(new ArrayList<ScanFilter>(), mScanSettings, mScanCallback);
} else
mBluetoothAdapter.startLeScan(mLeScanCallback);
}
Проблема в том, что при запуске сканирования я получаю ответ в методе onScanFailed с status 2 .
Большинство телефонов, с которыми я сталкиваюсь, это телефоны Samsung.
Как добиться успешного scanCallback?
Это проблема телефона или общая проблема Bluetooth в телефонах Samsung?