LoginSignup
7
1

More than 1 year has passed since last update.

【Bluetooth(BLE) / Swift】iOSからBluetoothのON/OFF状態を確認する

Posted at

はじめに

エンジニア1年目のminnです!(普段はFlutterやっています)
最近、仕事でデバイス接続関連の担当していて、少し詰まったりしたので備忘録残しときます🫡

iOSでBluetoothのON/OFF状態を確認する方法です。

1. CoreBluetoothを作成

import CoreBluetooth

2. CentralManagerを使用する

var centralManager: CBCentralManager!

init() {
        centralManager = CBCentralManager(
            delegate: nil,
            queue: nil,
            options: ["ShowPowerAlert" : false])
    }

注意
CentralManagerインスタンスを作成すると、自動的にBluetoothの許可ダイアログが表示されてしまいます。(Bluetoothがオフの場合)

意図しないタイミング(オンオフ状態を知りたいだけ)で表示されてしまうので困りましたが、CBCentralManageroptionsShowPowerAlertを設定してあげることで解決しました。

3. Bluetoothのステータスを受け取る

func isBleAvailable() -> Bool {
        if centralManager.state != .poweredOn {
            return false
        }
        return true
    }

おわりに

実はFlutterからオンオフ確認したくてFlutter_blue_plusなどのライブラリを使用していました。
しかし、ライブラリでも予期せぬダイアログが表示されてしまったので、Flutter MethodChannelを使用してiOSを呼び出す方法に変更しました。
解決できてよかったですが、もし他にいい方法がありましたらご教授いただけると幸いです。ご意見やご指摘もいただけると助かります。どなたかのお役に立てたら嬉しいです!

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1