gpt4 book ai didi

c# - Windows Phone Silverlight 8.1蓝牙应用程序到设备元素未找到异常

转载 作者:行者123 更新时间:2023-12-03 12:05:12 40 4
gpt4 key购买 nike

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

最佳答案

我终于找到了解决这个问题的方法。主要目标是在ConnectAsync方法的第二个参数(服务名称)中,该参数向应用程序说明设备支持的服务(例如TCP端口)。在对通信的两侧进行编程时,只需在两侧都放一些数字,但是大多数硬件设备都内置了自己的服务。因此,您需要知道硬件支持哪种服务ID,但是对于大多数此类设备(例如打印机)来说,它是serialPort。因此,您需要使用不同的方法来搜索也填充了peer.ServiceName的设备,然后使用服务名称进行连接。

这是Windows Phone蓝牙msdn手册中的真正错误,只需将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

关于c# - Windows Phone Silverlight 8.1蓝牙应用程序到设备元素未找到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25854205/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com