LINUX.ORG.RU

Вопрос по bluetooth pbap профилю

 , ,


0

2

Кто нибудь пробовал адресную книгу из телефонов доставать через pbap профиль?

https://github.com/ccouzens/pbap вот тут человек видимо пытался, но видимо и не доделал. Из кода я понял только что делаем obex соединение на канал pbap. Дальше надо какой-то запрос формировать чтобы данные пошли, но видимо это у него еще не реализовано.

Bluez дает пример на python https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/pbap-client

В нем я вобще ничего понять не могу :(

★★★★★

Мы делали чтение пропущенных вызовов. Переделывали то ли питоновский какой то тест из блюез, то ли сишный. Использовали дбас и куте.

kuzulis ★★
()
Ответ на: комментарий от kuzulis

алгоритм можешь подсказать в общих чертах? мне надо из bash скрипта это дело получить. Собираю информацию пока что.

irton ★★★★★
() автор топика
Ответ на: комментарий от irton

Из баш скрипта не знаю. Делали на C++ && Qt.

Из того что помню, нужно:

  • Чтобы был запущен D-bus сервис.
  • Чтобы был запущен Obex севис.

Потом:

  • Создаем объект интерфейса OrgBluezObexClient1Interface. С сервисом «org.bluez.obex» и путем «/org/bluez/obex».
  • Дергаем его CreateSession метод. С ключем «Target» и значением «PBAP».
  • Когда он завершится, то создаем объект OrgBluezObexPhonebookAccess1Interface. С сервисом «org.bluez.obex» и путем, который получен от предыдущего CreateSesison.
  • Дергаем его Select метод. С параметрами location (Internal, Sim, Sim2) и phonebook ( Contacts, IncomingCallsHistory, OutgoingCallsHistory, MissingCallsHistory, AllCallsHistory).
  • Когда оно завершится, дергаем его List метод. С нужными фильтрами, обычно пустыми.
  • Когда List завершится, он вернет список так называемый «VCardEntryArray»
  • Потом для каждого VCard дергаем Pull метод. С параметрами «Format» и «Fields». Оно запускает «вытягивание» через «Obex transfer» задданной записи.
  • Когда он завершится - парсим ответ, который содержит запрашиваемый контент (смотря что запрашивали, или книгу из симки или или из памяти телефона и или пр.).

В общем, читай доку (как минимум) по:

  • org.bluez.obex.Client1
  • org.bluez.obex.PhonebookAccess1
  • org.freedesktop.DBus.Properties

Изучай примеры... удачи.

kuzulis ★★
()
Последнее исправление: kuzulis (всего исправлений: 1)
Ответ на: комментарий от kuzulis

спасибо, хоть что-то есть.

а pull и select через dbus отправлять?

Доки прочитаны и вроде как достучусь до устройства, но pull и select как красиво из скрипта или через obex послать, вот это пока что-то не выяснил.

irton ★★★★★
() автор топика
Ответ на: комментарий от irton

Пулл и селект это методы созданных д-бас интерфейсов. Посмотри уже описание АПИ этих интерфейсов. Видать не дочитал ;)

Просто дергай методы созданных д-бас объектов/интерфейсов. И все, ИМХО.

Я не знаю как у вас у башников это делается

kuzulis ★★
()
Последнее исправление: kuzulis (всего исправлений: 5)
Ответ на: комментарий от kuzulis

да дочитал, но ведь такие имена не только в dbus фигурируют, вдруг однофамильцы.

Я не знаю как у вас у башников это делается

через гланды видимо, запросы к dbus в скрипте так страшно выглядят, буэ.

irton ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.