Я пытаюсь обнаружить устройства Bluetooth Low Energy (BLE) и подключиться к ним в своем приложении. У меня есть реализация, которая показывает некоторые устройства и может прекрасно связываться и взаимодействовать с ними. Однако одно из моих устройств BLE (Saveo C200 LF) никогда не отображается при сканировании.
Я загрузил приложение BLE Scanner из Google Play, чтобы посмотреть, появится ли Saveo C200 в их сканирование и оно делает. Он появляется мгновенно, и их приложение может подключиться к нему и обнаружить сервисы и тому подобное.
Я всегда вижу, что в моем обнаружении появляется несколько устройств, и я могу подключиться к/ связь с другими, но я просто не могу заставить это устройство отображаться в моем обнаружении вообще, хотя оно отображается в обнаружении для приложения BLE Scanner.
Но нет что бы я ни делал, я никогда не нахожу это устройство при сканировании. Я не использую никаких фильтров. Чего мне не хватает при попытках сканирования?
private BLEScanCallback bleScanCallback = new BLEScanCallback();
public void bleStartBluetoothDiscovery() {
BluetoothAdapter adapter = getBluetoothAdapter();
if (adapter != null) {
// for bluetooth le
bleScanner = adapter.getBluetoothLeScanner();
if (bleScanner != null) {
// run the discovery for 12 seconds and then automatically stop
bleScheduleEndDiscovery(12);
List filters = null;
ScanSettings scanSettings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.build()
;
bleScanner.startScan(filters, scanSettings, this.bleScanCallback);
}
}
}
private static class BLEScanCallback extends ScanCallback {
@Override
public void onScanResult(int callbackType, ScanResult result) {
BluetoothDevice device = result.getDevice();
// the address of the Saveo C200 device, got it from the
// 3rd party BLE Scanner app that is able to see it when scanning.
String crfidscanneraddress = "DD:0D:30:5E:1A:AC";
String address = device.getAddress();
String deviceName = device.getName();
deviceName = (deviceName == null) ? "Unknown" : deviceName;
if (address.equals(crfidscanneraddress)) {
Log.d(TAG, "onScanResult: FOUND IT!!! ---> " + deviceName + " [" + address + "] ");
// I'm not just relying on this log, I'm checking through
// all of the results and my device is not found even
// with a different address.
}
Log.d(TAG, "onScanResult: " + deviceName + " [" + address + "] ");
}
// ... etc
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-device
Обнаружение Android Bluetooth BLE не видит устройство ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1732658635
Anonymous
Я пытаюсь обнаружить устройства Bluetooth Low Energy (BLE) и подключиться к ним в своем приложении. У меня есть реализация, которая показывает некоторые устройства и может прекрасно связываться и взаимодействовать с ними. Однако одно из моих устройств BLE (Saveo C200 LF) никогда не отображается при сканировании.
Я загрузил приложение BLE Scanner из Google Play, чтобы посмотреть, появится ли Saveo C200 в их сканирование и оно делает. Он появляется мгновенно, и их приложение может подключиться к нему и обнаружить сервисы и тому подобное.
Я всегда вижу, что в моем обнаружении появляется несколько устройств, и я могу подключиться к/ связь с другими, но я просто не могу заставить это устройство отображаться в моем обнаружении вообще, хотя оно отображается в обнаружении для приложения BLE Scanner.
Но нет что бы я ни делал, я никогда не нахожу это устройство при сканировании. Я не использую никаких фильтров. Чего мне не хватает при попытках сканирования?
private BLEScanCallback bleScanCallback = new BLEScanCallback();
public void bleStartBluetoothDiscovery() {
BluetoothAdapter adapter = getBluetoothAdapter();
if (adapter != null) {
// for bluetooth le
bleScanner = adapter.getBluetoothLeScanner();
if (bleScanner != null) {
// run the discovery for 12 seconds and then automatically stop
bleScheduleEndDiscovery(12);
List filters = null;
ScanSettings scanSettings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.build()
;
bleScanner.startScan(filters, scanSettings, this.bleScanCallback);
}
}
}
private static class BLEScanCallback extends ScanCallback {
@Override
public void onScanResult(int callbackType, ScanResult result) {
BluetoothDevice device = result.getDevice();
// the address of the Saveo C200 device, got it from the
// 3rd party BLE Scanner app that is able to see it when scanning.
String crfidscanneraddress = "DD:0D:30:5E:1A:AC";
String address = device.getAddress();
String deviceName = device.getName();
deviceName = (deviceName == null) ? "Unknown" : deviceName;
if (address.equals(crfidscanneraddress)) {
Log.d(TAG, "onScanResult: FOUND IT!!! ---> " + deviceName + " [" + address + "] ");
// I'm not just relying on this log, I'm checking through
// all of the results and my device is not found even
// with a different address.
}
Log.d(TAG, "onScanResult: " + deviceName + " [" + address + "] ");
}
// ... etc
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79228372/android-bluetooth-ble-discovery-not-seeing-device[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия