Сканирование BLE на Android не работает с простым тестовым приложением Ionic4 (4.12.0). Сообщение об ошибке отсутствует, проверки включения возвращаются положительно. Подписка просто никогда не возвращается. Смотрите logcat ниже. Любая помощь очень ценится.
Вот как воспроизвести проблему с нуля:
ionic start BLEscanner blank
cd BLEscanner/
cordova plugin add cordova-plugin-ble-central --variable BLUETOOTH_USAGE_DESCRIPTION="Scan for mesh packets"
npm install --save @ionic-native/ble
ionic cordova platform add android@8.0.0 (tried with 7.1.0 and 6.4.0)
ionic cordova plugin add cordova-plugin-ionic-webview@latest
заменить home.page.ts на этот код:
import { OnInit, Component } from '@angular/core';
import { BLE } from '@ionic-native/ble/ngx';
import {
Platform,
} from '@ionic/angular';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage implements OnInit {
constructor(
private ble: BLE,
private platform: Platform,
){
console.log("constructor home page");
}
async ngOnInit() {
// Since ngOnInit() is executed before `deviceready` event,
// you have to wait the event.
await this.platform.ready();
console.log(`enter view, start scanning`)
this.ble.scan([], 5).subscribe(
device =>
console.log(JSON.stringify(device))),
error => console.log(`error ${error}`);
}
}
скомпилируйте и запустите:
ionic cordova run android --device
check chrome: // осмотреть / # устройства для проверки и посмотреть на консоль.
Все, что вы получаете:
Angular is running in the development mode. Call enableProdMode() to enable the production mode.
cordova.js:1218 deviceready has not fired after 5 seconds.
vendor.js:74395 Ionic Native: deviceready event fired after 3303 ms
home-home-module.js:98 constructor home page
home-home-module.js:135 enter view, start scanning
Нет результатов сканирования. Да, есть много рекламодателей BLE. И да, у приложения есть права доступа.
Сообщение об ошибке в Android LogCat:
05-03 15:30:42.368 17937 20508 I Places : ?: PlacesBleScanner stop()
05-03 15:30:42.394 17937 17937 I BeaconBle: 'L' hardware scan: scan stopped, no clients
05-03 15:30:42.394 17937 17937 I BeaconBle: Scan canceled successfully.
Есть идеи, что происходит. Странная вещь, это работало раньше. Некоторые версии не совпадают?