Windows Phone Silverlight 8.1 Приложение Bluetooth для устройства не найдено исключение

1

Я пытаюсь подключиться к принтеру bluetooth из моего приложения Windows _socket.ConnectAsync() 8.1, но я получаю следующее исключение в _socket.ConnectAsync()

{System.Exception: Element not found. (Exception from HRESULT: 0x80070490)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at PhoneApp1.MainPage.<ConnectToDevice>d__4.MoveNext()}

Мое приложение работает на ручном устройстве BLUEBIRD Windows 8.1. Мой код выглядит так:

        _socket = new StreamSocket();
        await _socket.ConnectAsync(peer.HostName ,"1" );

У меня есть возможности InternetClientServer и возможности близости

Тот же код работает с приложением для Windows Phone 8

Теги:
bluetooth
sockets
silverlight
windows-phone-8

1 ответ

1

Я, наконец, получил решение этой проблемы. Основная цель - второй параметр метода ConnectAsync (Service Name), который указывает приложению, какая служба поддерживается устройством (что-то вроде TCP-порта). Когда вы программируете обе стороны общения, вы просто можете поместить некоторые цифры с обеих сторон, но большинство жестких устройств имеют собственные встроенные сервисы. Поэтому вам нужно знать, какой идентификатор службы вам нужен, но для большинства этих устройств, таких как принтеры, это serialPort. Поэтому вам нужно использовать другой метод для поиска устройств, которые также заполняют имя_сервера.ServiceName, а затем соединяются с именем службы.

Это настоящая ошибка из руководства msdn для телефона с телефоном Windows, просто просто введите 1 для serviceName.

Наконец, вы должны установить возможности вручную для конкретных сервисов, таких как:

<m2:DeviceCapability Name="bluetooth.rfcomm">
   <m2:Device Id="any">
       <m2:Function Type="serviceId:00001101-0000-1000-8000-00805f9b34fb" />
   </m2:Device>
</m2:DeviceCapability>

И вы, сверстник, должны быть инициализированы следующим образом

PeerFinder.AlternateIdentities["Bluetooth:SDP"] = "{00001101-0000-1000-8000-00805f9b34fb}";

Все, что вам нужно знать о том, как искать сверстников и подключаться к устройству, находится в этом красивом блоге.

http://dream-forever.net/Blog/2013/11/28/using-bluetooth-in-windows-phone-8/

Также вам, возможно, придется использовать другие сервисы, список которых находится здесь:

http://msdn.microsoft.com/en-US/library/windows/apps/dn263090

  • 0
    Спасибо за Ваш ответ. Вышеупомянутая ошибка теперь исчезла, но появляется новая ошибка «Нет доступных данных. (Исключение из HRESULT: 0x80070103)». Пожалуйста, предложите, что сейчас может пойти не так.
  • 0
    Я обнаружил, что добавление capabilibyt "близости" в appxmanifest действительно помогает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню