通过蓝牙视窗 10 通用应用程序发送数据
本文关键字:应用程序 数据 | 更新日期: 2023-09-27 18:31:09
我无法弄清楚如何使用蓝牙在运行Windows 10的Windows通用应用程序的两个设备之间进行通信。我不确定我的研究是否有内容,但我在 API 上找不到任何东西。
有人可以使用 C# 快速指导我完成此操作吗?
您可以参考此 MSDN 链接:
https://learn.microsoft.com/en-us/windows/uwp/devices-sensors/send-or-receive-files-with-rfcomm
此示例显示客户端和服务器模型蓝牙通信。
对于设备枚举和配对,可以使用以下 Windows 示例:
https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/DeviceEnumerationAndPairing
此示例不适用于旧的 Windows SDK 版本 (10240)。
对于文件传输,您必须像文档中一样实现 IrOBEX 协议连接、断开连接和数据包。
我认为步骤将是这样的:
- 使用窗口示例枚举和配对。
- 打开流套接字。
- 实现 OBEX 协议。
像这样:
private static byte[] CreateConnectPacketOPP(int maxPacketSize)
{
int packetSize = 7;
byte[] theConnectPacket = new byte[packetSize];
int offset = 0;
ConnectPacket[offset++] = 0x80; // Connect
ConnectPacket[offset++] = (byte)((packetSize & 0xFF00) >> 8); // Packetlength Hi Byte
ConnectPacket[offset++] = (byte)(packetSize & 0xFF); // Packetlength Lo Byte
ConnectPacket[offset++] = 0x10; // Obex v1
ConnectPacket[offset++] = 0x00; // No flags
ConnectPacket[offset++] = (byte) ((maxPacketSize & 0xFF00) >> 8); // 2048 byte client max packet size Hi Byte
ConnectPacket[offset++] = (byte) (maxPacketSize & 0xFF); // 2048 byte max packet size Lo Byte
return ConnectPacket;
}