我尝试在Raspberry PI 3上运行的Windows 10 IOT背景(无头)应用程序中扫描BLE设备。
我还尝试在同一台RaspBerry PI机器上使用带有UI的应用程序(带有UI)中的BluetoothLEAdvertisementWatcher,但它确实有效。
我的无头应用程序是最简单的:
public sealed class StartupTask : IBackgroundTask
{
private readonly BluetoothLEAdvertisementWatcher _bleWatcher =
new BluetoothLEAdvertisementWatcher();
public void Run(IBackgroundTaskInstance taskInstance)
{
_bleWatcher.Received += _bleWatcher_Received;
_bleWatcher.ScanningMode = BluetoothLEScanningMode.Active;
_bleWatcher.Start();
}
private void _bleWatcher_Received(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs args)
{
}
}
_bleWatcher_Received永远不会被击中。功能设置(蓝牙,互联网,接近)。
有什么问题?我错过了什么?
答案 0 :(得分:1)
当app方法完成时,app会关闭。这就是_bleWatcher_Received
从未被击中的原因。
要阻止您退出应用,您需要调用“GetDeferral”方法,如下所示:
public void Run(IBackgroundTaskInstance taskInstance)
{
deferral = taskInstance.GetDeferral();
//YOUR CODE HERE
}
有关详细信息,请参阅“Developing Background Applications”。