В настоящее время у меня есть одно приложение Bluetooth, которое сканирует все доступные устройства и может подключиться к устройству.
У меня есть список, который будет отображаться при каждом обнаружении устройства Bluetooth.
Однако могу ли я узнать, как заставить приложение обновлять значение RSSI каждую секунду?
вот мой код.
doStartScanning(){
this.peripherals=[];
this.distance=[];
bluetooth.startScanning({
serviceUUIDs: [],
// seconds: 4, /*if this is not specify, user can manually stop the scanning by press button stop scan*/
onDiscovered: (peripheral) => {
this.zone.run(() => {
console.log("---UUID "+peripheral.UUID);
this.peripherals.push(peripheral);
this.distance.push(`${Math.round((Math.pow(10,(-62-(peripheral.RSSI+20))/20))*10)/10}`);
})
}
}
).then(function() {
console.log("scanning complete");
}, function (err) {
console.log("error while scanning: " + err);
});
}
/*user can stop scan the available bluetooth*/
doStopScanning(){
bluetooth.stopScanning().then(function() {
console.log("Scanning Stop!");
},
function (err) {
dialogs.alert({
title: "Whoops!",
message: err,
okButtonText: "OK, so be it"
});
});
}
<GridLayout rows="*">
<ListView [items]="peripherals" separatorColor="#90c3d4">
<ng-template let-peripherals="item" let-i="index" let-odd="odd" let-even="even">
<StackLayout orientation="horizontal" class="padded-label" >
<StackLayout class="padded-label-stack">
<Label horizontalAlignment="right" width="40" text="{{ peripherals.RSSI +20}} dBm" class="rssi-label" ></Label>
<Label horizontalAlignment="right" width="40" text="{{ distance[i] }} m" class="rssi-label" ></Label>
</StackLayout>
<StackLayout class="padded-label-stack" (tap)="onTapPeripheral(peripherals.UUID,peripherals.name, peripherals.state)">
<Label text="Name: {{ peripherals.name }}" class="title-label" textWrap="true" ></Label>
<Label text="UUID: {{ peripherals.UUID }}" class="uuid-label" textWrap="true" ></Label>
<Label text="State: {{ peripherals.state }}" class="uuid-label" textWrap="true" ></Label>
</StackLayout>
</StackLayout>
</ng-template>
</ListView>
</GridLayout>