Je veux répertorier tous les périphériques Bluetooth à portée, idéalement avec les noms d'hôte, mais les adresses MAC seraient suffisantes. J'ai besoin d'une commande qui effectue une analyse active afin que je puisse interroger pour voir si mon appareil est à proximité, pas une liste des appareils précédemment couplés.
Mon cas d'utilisation détecte si mes écouteurs Bluetooth ou iPhone sont à portée de mon Mac, pour déclencher des changements de paramètres de sécurité (par exemple, délai d'attente Sudo). J'ai fait pas mal de recherches sur Google, et les seules choses que je semble pouvoir trouver sont des exemples de code iOS Swift. Je serais heureux avec des exemples de code OS X Swift, AppleScript, des utilitaires de terminal ou des pointeurs vers de bons documents.
J'ai examiné ces options jusqu'à présent:
blued
: imprime une liste d'adresses mac mais elles ne semblent pas changer lorsque les appareils entrent ou sortent de la plage ou se connectent, et elles ne sont pas associées aux noms d'hôtesblueutil
(brew install blueutil
): imprime uniquement l'état de l'alimentation, pas les noms des périphériquesbluetoothaudiod
: pas d'interface utilisableBluetooth Explorer.app
dtrace
pour voir comment Bluetooth Explorer.app
Calcule la liste: difficile en dernier recoursModifier 2017/01: Trouvé cette SO réponse avec des détails sur la recherche d'appareils à proximité dans Swift:
Liste des périphériques qui sont à portée de périphérique Bluetooth dans Swift
Modifier 2017/10: a trouvé une réponse SO mise à jour pour Swift 3 et 4.0: Appareils Bluetooth à proximité utilisant Swift 3.
Dans Terminal, la commande:
system_profiler SPBluetoothDataType
vous donne tous les détails sur Bluetooth, y compris les appareils couplés, avec leurs noms, adresse MAC. Le résultat est malheureusement un peu trop, mais avec la commande sed ou grep, vous devez extraire ce dont vous avez besoin.