【问题标题】:Read contacts using bluetooth使用蓝牙读取联系人
【发布时间】:2018-07-30 00:56:19
【问题描述】:

我正在尝试使用 32feet 库从我的移动设备中读取联系人,但我在尝试时遇到了错误的请求错误。该设备已与我的应用程序配对。这是我的代码:

var item = (BluetoothDeviceInfo)listBox.SelectedItem;
Task.Run(() =>
{
    item.Update();
    item.Refresh();

    item.SetServiceState(BluetoothService.PhonebookAccess, true);

    if (OBEXOpenStream(item.DeviceAddress.ToString()))
    {
        if (OBEXConnect())
        {
            string tName = "";
            string tType = "text/x-vCard";
            string tFileContent = "";
            int result = OBEXRequest("GET", tName, tType, tFileContent);

            item.ShowDialog();
        }
    }
    OBEXCloseStream();

});

我不知道是否有其他方法可以使用 OBEX 获取联系人。

【问题讨论】:

    标签: c# bluetooth 32feet obex


    【解决方案1】:

    当您必须为请求发送一个空的名称标头时,您可能犯了一个错误。变量tName 应该是null 而不是"",因为""0x00(以字节为单位),而不是空名称头。该库会将名称标头的大小发送为0x0004,而不是0x0003,这是您的vCard 请求所必需的。这是一个常见的错误,我也犯了:)

    为什么要给tFileContents参数?据我所知,这没有必要。您可能必须删除该参数。根据 IRDA 规范,不需要它。

    抱歉英语不好,我希望这个答案对你有很大帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多