这是获取BLE设备的UWP代码。为什么我的某些设备会得到bleDevice == null?我没有找到任何解释这一点的文件。
var devices = await DeviceInformation.FindAllAsync(BluetoothLEDevice.GetDeviceSelector());
foreach (DeviceInformation di in devices)
{
Debug.WriteLine(di.Name);
BluetoothLEDevice bleDevice = await BluetoothLEDevice.FromIdAsync(di.Id);
if (bleDevice == null) {
Debug.WriteLine("--- NULL ----");
continue;
}
Debug.WriteLine(bleDevice.Name);
}
我注意到,对于在Windows中的设备管理器中带有STATUS_DEVICE_POWER_FAILURE感叹号的BLE设备,我得到了bleDevice!= null。
对于在设备管理器中没有感叹号的BLE设备,我得到bleDevice == null。
答案 0 :(得分:6)
我遇到了同样的问题。以前的answer from Chi Lee实际上是好的,但没有详细说明如何做到(对于非专家;-))。
这里是详细的过程(假设您在Microsoft visual studio下有一个c#项目):
答案 1 :(得分:0)
您必须在appxmanifest文件中添加蓝牙功能。