org.bluez...torManager(5)

🌸 NAME 🌸

org.bluez.AdvertisementMonitorManager(5) β€” the BlueZ D-Bus AdvertisementMonitorManager API documentation, bestie. This is the one from Linux System Administration, and it's all about letting apps register advertisement monitors over D-Bus. ✨


πŸ”Œ INTERFACE πŸ”Œ

Okay so here's the identity card for this interface:

  • Service: org.bluez
  • Interface: org.bluez.AdvertisementMonitorManager1 [experimental]
  • Object path: /org/bluez/{hci0,hci1,...}
  • Used by: bluetoothctl-monitor(1)
Vibe check: yes, the interface is tagged [experimental] β€” that's literally in the name, no cap. πŸ’…

πŸ› οΈ METHODS πŸ› οΈ

void RegisterMonitor(object application)

This method registers the root path of a hierarchy of advertisement monitors that implement org.bluez.AdvertisementMonitor(5). πŸŽ€

The application object path plus the D-Bus system bus connection ID together define the identification of the application that's registering advertisement monitors.

Once a client registers a root path through this method, that client can freely expose/unexpose advertisement monitors without re-registering the root path again. Iconic, honestly. πŸ‘‘

After use, the client should call the UnregisterMonitor() method to invalidate the advertisement monitors.

Possible errors:

  • org.bluez.Error.InvalidArguments
  • org.bluez.Error.AlreadyExists
  • org.bluez.Error.Failed

Examples:

bluetoothctl
[monitor] > add-or-pattern <start_pos> <ad_type> <content>

void UnregisterMonitor(object application)

This one unregisters a hierarchy of advertisement monitors that was previously registered with RegisterMonitor(). The object path parameter must match the same value that was used on registration β€” no switching it up, bestie. 🫢

Upon unregistration, the advertisement monitor(s) should expect to receive the Release() method as the signal that the advertisement monitor(s) has been deactivated.

Possible errors:

  • org.bluez.Error.InvalidArguments
  • org.bluez.Error.DoesNotExist

Examples:

bluetoothctl
[monitor] > remove-pattern <monitor-id/all>

πŸŽ€ PROPERTIES πŸŽ€

array{string} SupportedMonitorTypes [read-only]

This lists the supported types of advertisement monitors. An application should check this before it instantiates and exposes an object of org.bluez.AdvertisementMonitor(5). Like, do the vibe check first. πŸ’–

Possible values:

  • "or_patterns" β€” Patterns with logic OR applied. With this type, the property Patterns must exist and has at least one pattern.

array{string} SupportedFeatures [read-only]

This lists the features of advertisement monitoring supported by bluetoothd(8). 🌈

Possible values:

  • "controller-patterns" β€” If the controller is capable of performing advertisement monitoring by patterns, bluetoothd(8) would offload the patterns to the controller to reduce power consumption. Lowkey efficient. πŸ”₯

later, bestie πŸ’– this page comes from BlueZ, dated October 2023 β€” go off and monitor those advertisements. πŸ¦‹

πŸ“¦ where this page comes from