加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows UWA(IoT)蓝牙RfcommService

发布时间:2020-12-14 05:38:37 所属栏目:Windows 来源:网络整理
导读:我正在尝试在两个 Windows 10设备之间建立通信: Raspberry PI 2 B蓝牙适配器 Surface亲 覆盆子pi的服务器: private readonly Guid _rfcommChatServiceUuid = Guid.Parse("34B1CF4D-1069-4AD6-89B6-E161D79BE4D8");private async void CreateServer() { _pr
我正在尝试在两个 Windows 10设备之间建立通信:

> Raspberry PI 2 B蓝牙适配器
> Surface亲

覆盆子pi的服务器:

private readonly Guid _rfcommChatServiceUuid = Guid.Parse("34B1CF4D-1069-4AD6-89B6-E161D79BE4D8");

private async void CreateServer()
    {
        _provider = await RfcommServiceProvider.CreateAsync(RfcommServiceId.FromUuid(_rfcommChatServiceUuid));
        _listener = new StreamSocketListener();

        _listener.ConnectionReceived += OnConnectionReceived;
        await _listener.BindServiceNameAsync(_provider.ServiceId.AsString(),SocketProtectionLevel.BluetoothEncryptionAllowNullAuthentication);

        InitializeServiceSdpAttributes(_provider);
        _provider.StartAdvertising(_listener);
    }

    const uint SERVICE_VERSION_ATTRIBUTE_ID = 0x0300;
    const byte SERVICE_VERSION_ATTRIBUTE_TYPE = 0x0A;   // UINT32
    const uint SERVICE_VERSION = 200;
    void InitializeServiceSdpAttributes(RfcommServiceProvider provider)
    {
        var writer = new DataWriter();
        writer.WriteByte(SERVICE_VERSION_ATTRIBUTE_TYPE);
        writer.WriteUInt32(SERVICE_VERSION);
        var data = writer.DetachBuffer();
        provider.SdpRawAttributes.Add(SERVICE_VERSION_ATTRIBUTE_ID,data);
    }

 async void OnConnectionReceived(
StreamSocketListener listener,StreamSocketListenerConnectionReceivedEventArgs args)
    {

        _provider.StopAdvertising();
        _listener.Dispose();
        _listener = null;
        _socket = args.Socket;

表面的客户:

var services = await DeviceInformation.FindAllAsync(
              RfcommDeviceService.GetDeviceSelector(RfcommServiceId.FromUuid(_rfcommChatServiceUuid)));

服务集合是空的.

这有什么问题?

谢谢

解决方法

我认为值得尝试在客户端硬编码地址.服务器和客户端共有 sample C code个RFCOMM连接.

用于Windows(通用)的蓝牙RFCOMM聊天示例是here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读