Читайте контакты, используя obex в C#

Я пытаюсь читать контакты, используя библиотеку 32feet для C#. Я подключаю свой ПК к мобильному устройству через Bluetooth, и при попытке выполнить этот код всегда выдает ошибку неверного запроса

LocalInfo.SetServiceState(BluetoothService.PhonebookAccessPce, true);
BluetoothAddress addr = BluetoothAddress.Parse("00:00:00:00:00:00");
BluetoothEndPoint rep = new BluetoothEndPoint(addr, BluetoothService.PhonebookAccessPse);
BluetoothClient cli = new BluetoothClient();
cli.Connect(rep);

Uri uri = new Uri(ObexUri.UriSchemeObex + "://" + addr + "/telecom/pb.vcf");
ObexWebRequest request = new ObexWebRequest(uri);
request.Method = "GET";
request.ContentType = "text/x-vCard";
ObexWebResponse resp = (ObexWebResponse)request.GetResponse();

И в конструкторе:

private BluetoothDeviceInfo localinfo = null;
public BluetoothDeviceInfo LocalInfo
    {
        get
        {
            return localinfo = (localinfo ?? new BluetoothDeviceInfo(BluetoothRadio.PrimaryRadio.LocalAddress));
        }
    }

Что я делаю не так? URI неправильный, или мне нужен другой Bluetooth?

1 ответ

Хотя я не эксперт в 32 фута, я знаю, что Name Header из GET запрос на получение vcard должен быть null, Почему бы вам не попробовать использовать пустой или null URI?

Изменить Я нашел несколько утверждений, которые требуют от вас использовать obex-ftp вместо obex.

замечания

Для Object Exchange код метода сопоставляется с эквивалентным методом стиля HTTP. Например, "PUT", "GET" и т. Д. "PUT" является значением по умолчанию. Появилась новая поддержка GET начиная с версии 2.5.

Чтобы использовать GET, измените метод на "GET", и вы также должны использовать схему " obex-ftp " в URL вместо обычного " obex " - если только вы не знаете, что подключаемый по умолчанию сервер OBEX поддерживает GET.

И это цитируется отсюда.

редактировать

Доступ к телефонной книге Аналогичен передаче файлов, но использует цель {0x79, 0x61, 0x35, 0xF0, 0xF0, 0xC5, 0x11, 0xD8, 0x09, 0x66, 0x08, 0x00, 0x20, 0x0C, 0x9A, 0x66}; Записи телефонной книги могут быть перечислены (с различными возможными порядками и фильтрами) и извлечены из определенных каталогов в разделе telecom/ с помощью GET и SETPATH.

- в соответствии с википедией вы должны указать какой-то конкретный UUID TARGET заголовок при подключении к phonebook access,

Как и коды здесь, вы должны не только указать UUID службы PBAP 0000112f-0000-1000-8000-00805f9b34fb на уровне RFCOMM, но также необходимо указать целевой UUID заголовка 0x79, 0x61, 0x35, (byte) 0xf0, (byte) 0xf0, (byte) 0xc5, 0x11, (byte) 0xd8, 0x09, 0x66, 0x08, 0x00, 0x20, 0x0c, (byte) 0x9a, 0x66 на уровне OBEX в заголовке типа.

Другие вопросы по тегам