Связь UWP Bluetooth: объект bluetoothDevice всегда имеет значение null

Я пытаюсь позволить ПК и HoloLens обмениваться данными через Bluetooth RFCOMM, поэтому я пишу приложение UWP. Я могу получить информацию об устройстве и, следовательно, идентификатор с помощью наблюдателя за устройством. Моя проблема в этой строке:

var bluetoothDevice = await BluetoothDevice.FromIdAsync(deviceInfo.Id);

Моя проблема в том, что bluetoothDevice всегда имеет значение null, хотя этого не должно быть. Microsoft говорит в своем примере RfcommChat об этой строке:

        // If we were unable to get a valid Bluetooth device object,
        // it's most likely because the user has specified that all unpaired devices
        // should not be interacted with.

Но мой компьютер и мои HoloLens уже сопряжены. И я получаю ту же ошибку независимо от того, запускаю ли я приложение на своем ПК и использую HoloLens для подключения или HoloLens и использую для подключения свой ПК.

Кто-нибудь может помочь?

С уважением Дастин


person duesterdust    schedule 22.05.2018    source источник
comment
deviceInfo.Id происходит от DeviceWatcher? А можно подробнее про вотчер?   -  person Nico Zhu - MSFT    schedule 23.05.2018


Ответы (2)


я нашел свою ошибку. Забыл добавить bluetooth в возможности package.appxmanifest:

<DeviceCapability Name="bluetooth" />
<DeviceCapability Name="bluetooth.rfcomm">
   <Device Id="any">
     <Function Type="serviceId:34B1CF4D-1069-4AD6-89B6-E161D79BE4D8" />
   </Device>
</DeviceCapability>
person duesterdust    schedule 23.05.2018
comment
Если вы решили свою проблему, пожалуйста, отметьте ее как принятую для удобства людей, которые посетят эту тему позже. Спасибо за понимание. - person Nico Zhu - MSFT; 05.06.2018

Вместо этого попробуйте использовать FromBluetoothAddressAsync с MAC-адресом только что найденного/сопряженного устройства, потому что Device.Id может быть неверным или не установлен на самом деле.

person Mike Petrichenko    schedule 23.05.2018