1

我正在尝试使用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 获取联系人。

4

1 回答 1

0

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

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

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

于 2018-03-03T13:26:43.777 回答