iOS - Swift 蓝牙 - 未发现 Android 设备

Posted

技术标签:

【中文标题】iOS - Swift 蓝牙 - 未发现 Android 设备【英文标题】:iOS - Swift Bluetooth - does not discover Android device 【发布时间】:2018-03-06 01:47:06 【问题描述】:

我正在尝试用 Swift 编写一个发现 android 手机(像素 2)的应用程序。但是,它没有显示在结果中。但是,我可以在 iphone 的常规蓝牙设置中找到像素(它是 iphone 8)。

我发现安卓手机的代码:

override func viewDidLoad() 
    super.viewDidLoad()
    centralManager = CBCentralManager(delegate: self, queue: nil)



func centralManagerDidUpdateState(_ central: CBCentralManager) 
    if (central.state == .poweredOn) 
        print("Powered on, starting scan")
        self.centralManager?.scanForPeripherals(withServices: nil, options: nil)
     else 
        print("BT not powered on")
    


func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) 
    print(peripheral)

它显示了其他 BT 设备,但没有显示 Android 手机。为了以防万一,我还编写了一个 Android 应用程序来明确启用 BT 可发现性。但仍然没有出现。

【问题讨论】:

您的 Android 设备需要宣传 BLE GATT 服务才能使用您显示的代码进行发现。 @Paulw11 我要改变什么,才能在启用 BT 时发现它? 您无法从 ios 应用中发现旧版蓝牙设备。您只能发现 BLE GATT 服务。 【参考方案1】:

正如@Paulw11 所提到的,我必须创建一个 BLE GATT 服务来检测它。

看看这个例子:https://github.com/androidthings/sample-bluetooth-le-gattserver如果你以这种方式实现 Android 应用,iOS 应用就会发现该服务。

【讨论】:

以上是关于iOS - Swift 蓝牙 - 未发现 Android 设备的主要内容,如果未能解决你的问题,请参考以下文章

iOS蓝牙未发现设备

IOS 蓝牙未发现外围服务。 (有时!)

IOS 蓝牙未在 iPhone 设置页面中发现

Swift:为啥我的 iOS 不能扫描其他蓝牙设备

监听蓝牙外设按钮事件 iOS Swift

有没有办法通过 iOS/swift 中的蓝牙以编程方式连接 android 和 IOS 设备?