通过蓝牙视窗 10 通用应用程序发送数据

本文关键字:应用程序 数据 | 更新日期: 2023-09-27 18:31:09

我无法弄清楚如何使用蓝牙在运行Windows 10的Windows通用应用程序的两个设备之间进行通信。我不确定我的研究是否有内容,但我在 API 上找不到任何东西。

有人可以使用 C# 快速指导我完成此操作吗?

通过蓝牙视窗 10 通用应用程序发送数据

您可以参考此 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 协议连接、断开连接和数据包。

我认为步骤将是这样的:

  1. 使用窗口示例枚举和配对。
  2. 打开流套接字。
  3. 实现 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;
}