Я пытаюсь сканировать BLE устройства сСканирование BLE устройство не работает
mBluetoothAdapter.startLeScan(this);
(я знаю его устаревшим для новых версий, но только, чтобы видеть, что это работает с телефоном [4.4], я использую его). Поэтому он начинает сканирование и затем переходит без ошибок, но устройство не обнаружено. Событие OnLEScan также запускается, но параметр устройства в нем равен NULL. Мое устройство LE находится прямо там и подключено.
В googling я обнаружил, что это происходит, если у BluetoothAdapter нет UUID. Как установить UUID? Когда OnLeScan вызывается/запускается? Есть ли другое решение?
Мой код обратного вызова идет здесь
//BluetoothAdapte.LEScanCallBack on MainActivity
@Override
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord){
Log.i(TAG, "New LE Device: " + device.getName() + "@" + rssi);
if(Device_Name.equals(device.getName())){
mDevices.put(device.hashCode(), device);
invalidateOptionsMenu();
}
}
Спасибо! кажется правильным ответом только на то, что я получаю ошибку: поиск метода не удалось для селектора «getBluetoothLeScanner» с подписью «() Landroid/bluetooth/le/BluetoothLeScanner;» \t когда я это делаю -> mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner(); – Samra
Моя версия java-компилятора 1,7 (если это имеет значение) – Samra
Возможно, эта ошибка возникает, потому что ** API-интерфейс BluetoothLeScanner ** был добавлен в API 21 (Android 5.0). Итак, попробуйте установить 'minSdkVersion 21'. –