相关疑难解决方法(0)

是否有命令行界面列出mac上范围内的所有蓝牙设备?

我想列出所有范围内的蓝牙设备,理想情况下是主机名,但MAC地址就足够了.我需要一个执行主动扫描的命令,以便我可以查看我的设备是否在附近,而不是列出以前配对设备的设备.

我的用例是检测我的蓝牙耳机或iPhone是否在我的Mac范围内,以触发安全设置更改(例如sudo超时).我已经做了很多谷歌搜索,我似乎能找到的唯一的东西是iOS快速代码示例.我很满意OS X Swift代码示例,AppleScript,终端实用程序或指向优秀文档的指针.

到目前为止我已经看过这些选项了:

  • blued:打印一个mac地址列表,但是当设备进入或超出范围或连接时它们似乎没有改变,并且它们与主机名不匹配
  • blueutil(brew install blueutil):仅打印电源状态,而不是设备名称
  • bluetoothaudiod:没有可用的界面
  • 这个Objective-C代码在XCode中创建一个基于终端的蓝牙监视器?:编译时我遇到了几个错误,所以很难对它进行测试
  • 使用AppleScript将其读出Bluetooth Explorer.appGUI
  • 使用dtrace来看看如何Bluetooth Explorer.app计算列表:困难不得已而为之
  • 来自此论坛帖子Proximity App :没有命令行界面,所以我无法远程查询它.我可以编写一个脚本,将状态存储在一个文件中以便稍后阅读,但它一次只适用于一个设备.

编辑2017/01:找到这个SO答案,详细介绍如何在Swift中查找附近的设备:列出 Swift
中蓝牙设备范围内的设备

编辑2017/10:找到Swift 3和4.0的更新SO答案:使用Swift 3.0附近的蓝牙设备

macos applescript bluetooth objective-c swift

14
推荐指数
1
解决办法
2万
查看次数

列出Swift中蓝牙设备范围内的设备

我在Xcode 6游乐场中有以下代码:

import Cocoa
import IOBluetooth

class BlueDelegate : IOBluetoothDeviceInquiryDelegate {
    func deviceInquiryComplete(sender: IOBluetoothDeviceInquiry, error: IOReturn, aborted: Bool) {
        aborted
        var devices = sender.foundDevices()
        for device : AnyObject in devices {
            if let thingy = device as? IOBluetoothDevice {
                thingy.getAddress()
            }
        }
    }
}

var inquiry = IOBluetoothDeviceInquiry(delegate: BlueDelegate())
inquiry.start()
Run Code Online (Sandbox Code Playgroud)

我刚开始使用OSX下的蓝牙,而我目前想要的只是范围内的设备列表.

它似乎根本没有调用我的委托方法.

我是OSX开发和Swift的新手,所以请保持温和.:)

macos bluetooth iobluetooth swift

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

bluetooth ×2

macos ×2

swift ×2

applescript ×1

iobluetooth ×1

objective-c ×1