web-dev-qa-db-fra.com

Existe-t-il une interface de ligne de commande pour répertorier tous les appareils Bluetooth à portée sur Mac?

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ôtes
  • blueutil (brew install blueutil): imprime uniquement l'état de l'alimentation, pas les noms des périphériques
  • bluetoothaudiod: pas d'interface utilisable
  • Ce code Objective-C Créer un moniteur Bluetooth basé sur un terminal dans XCode? : Je reçois plusieurs erreurs lors de la compilation, il est donc difficile de le tester
  • Utilisation d'AppleScript pour le lire dans l'interface graphique Bluetooth Explorer.app
  • Utiliser dtrace pour voir comment Bluetooth Explorer.app Calcule la liste: difficile en dernier recours
  • Proximity App from this post forum : N'a pas d'interface de ligne de commande, donc je ne peux pas l'interroger à distance. Je peux écrire un script qui stocke l'état dans un fichier à lire plus tard, mais cela ne fonctionne que pour un appareil à la fois.

Modifier 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.

13
Nick Sweeting

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.

18
pbell