C# 未找到Windows Phone Silverlight 8.1蓝牙应用程序到设备元素异常
我正在尝试从我的windows Phone silverlight 8.1应用程序连接到蓝牙打印机,但在C# 未找到Windows Phone Silverlight 8.1蓝牙应用程序到设备元素异常,c#,sockets,silverlight,windows-phone-8,bluetooth,C#,Sockets,Silverlight,Windows Phone 8,Bluetooth,我正在尝试从我的windows Phone silverlight 8.1应用程序连接到蓝牙打印机,但在\u socket.ConnectAsync()方法中出现以下异常 {System.Exception: Element not found. (Exception from HRESULT: 0x80070490) at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at Sys
\u 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()}
我启用了internetClientServer和邻近功能
同样的代码也适用于针对Windows Phone 8的应用程序,我终于找到了这个问题的解决方案。主要目标是ConnectAsync方法中的第二个参数(服务名称),它向应用程序说明设备支持哪种服务(类似于TCP端口)。当你对通信双方进行编程时,你只需在通信双方都输入一些数字,但大多数硬件设备都内置了自己的服务。因此,您需要知道您的硬件支持哪个服务ID,但对于大多数设备(如打印机),它是serialPort。因此,您需要使用不同的方法来搜索一个设备,该设备也会填充peer.ServiceName,然后使用服务名称进行连接 这是msdn手册中关于Windows phone蓝牙的真正错误,只是简单地将serviceName改为1 最后,您必须手动设置特定服务的功能,如下所示:
<m2:DeviceCapability Name="bluetooth.rfcomm">
<m2:Device Id="any">
<m2:Function Type="serviceId:00001101-0000-1000-8000-00805f9b34fb" />
</m2:Device>
</m2:DeviceCapability>
关于如何搜索同龄人和连接到设备,您需要知道的就是这个漂亮的博客
此外,您可能需要使用其他服务,列表如下:
谢谢你的回答。上述错误现已消失,但新错误显示“没有更多可用数据。(HRESULT异常:0x80070103)”。请指出现在可能出现的问题。我发现在appxmanifest中添加CapabilityByt“邻近性”确实有帮助。
<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}";