2021-02-21 10:45:13

by Arnaud Gardelein

[permalink] [raw]
Subject: Message Access Protocol using DBus bluez ConnectProfile()

How to connect to a phone using Message Access Protocol (MAP) using
DBus ?

Currently I'm using a call to sdptool to browse the device, find the
relevant port by mean of xml output analysis, and then call session bus
org.bluez.obex / org.bluez.obex.Client1 / CreateSession(), see [1]. I
found relevant documentation for this here [2].

Using system bus org.bluez / org.freedesktop.DBus.ObjectManager
GetManagedObject() , a list of UUID is returned, including a 128-bits
UUID for MAP '00001132-0000-1000-8000-00805f9b34fb', in here the 16-
bits value 0x1132 is for MAP if I'm not mistaken. When using
org.bluez.Device1 / ConnectProfile(UUID) on device's path, I tried to
find a change on system bus and session bus without success using D-
Feet.

For the sake of clarify I tried also Connect(), and in this case are
appearing paths related to media play. I searched over the Internet,
found some pages related to GATT but not completely in line with my
question it seems.

What is the correct usage of ConnectProfile(UUID) ? Can this be used to
access phone's MAP ? I this the correct place to ask this question ?

Arnaud.

[1] https://github.com/agardelein/textoter
[2]
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/obex-api.txt?h=5.50
and neighbor files