【问题标题】:Windows Phone Silverlight 8.1 Bluetooth app to device element not found exceptionWindows Phone Silverlight 8.1 蓝牙应用到设备元素未找到异常
【发布时间】:2014-12-05 14:28:13
【问题描述】:

我正在尝试从我的 windows Phone silverlight 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 为目标的应用

【问题讨论】:

    标签: c# sockets silverlight windows-phone-8 bluetooth


    【解决方案1】:

    我终于得到了这个问题的解决方案。主要目标是在 ConnectAsync 方法的第二个参数(服务名称)中,它告诉应用程序设备支持哪些服务(类似于 TCP 端口)。当您对通信的双方进行编程时,您只需在双方都输入一些数字,但大多数硬件设备都内置了自己的服务。因此,您需要知道硬件支持哪个服务 ID,但对于大多数此类设备(如打印机)来说,它是 serialPort。所以你需要使用不同的方法来搜索一个也填写 peer.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>
    

    你的peer finder必须像这样初始化

    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

    【讨论】:

    • 感谢您的回答。上面的错误现在消失了,但出现了一个新错误 "No more data is available. (Exception from HRESULT: 0x80070103)" 。请提出现在可能出了什么问题。
    • 我发现在 appxmanifest 中添加 capabilibyt "proximity" 确实有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多