【Flutter】ライブラリ紹介 flutter_blue_plus

Flutter

FlutterBluePlusは、Flutter向けのBluetooth Low Energy(BLE)プラグインです。BLEデバイスとの通信や接続を可能にします。以下は、このプラグインの基本的な使用方法やトラブルシューティングに関する情報です。

追記(2024/4/3)

この記事は基本的なflutter_blue_plusのreadme.mdを参考にしています。
が、私はStreamをRiverpodを使って実装することを前提に考えています
このまま書いても動きますが、できればMVVMで上手に管理してください。

また、更新が恐ろしく速いので、エンジニアの皆さん、がんばれ。
たまにバグが増える謎アプデがあります。

概要

FlutterBluePlusは、Flutterで動作するBLE Central Roleプラグインです。
iOS、macOS、Androidのすべてのプラットフォームをサポートしています。

ただし、Bluetooth Classicはサポートされていません。

インストール

flutter pub add flutter_blue_plus

使用方法

Bluetoothがサポートされているか確認

if (await FlutterBluePlus.isSupported == false) {
    print("Bluetooth not supported by this device");
    return;
}

Bluetoothの状態を監視

FlutterBluePlus.adapterState.listen((BluetoothAdapterState state) {
    print(state);
    if (state == BluetoothAdapterState.on) {
        // Bluetoothがオンになった時の処理
    } else {
        // Bluetoothがオフになった時の処理
    }
});

Bluetoothのオンとオフ(Androidのみ)

if (Platform.isAndroid) {
    await FlutterBluePlus.turnOn();
}

デバイスのスキャン

// スキャン結果のリスナーをセットアップ
var subscription = FlutterBluePlus.scanResults.listen((results) {
    if (results.isNotEmpty) {
        ScanResult r = results.last; // 最後に見つかったデバイス
        print('${r.device.remoteId}: "${r.advertisementData.advName}" found!');
    }
},
onError: (e) => print(e));

// Bluetoothが有効でパーミッションが許可されるまで待機
await FlutterBluePlus.adapterState
    .where((val) => val == BluetoothAdapterState.on)
    .first;

// スキャン開始
await FlutterBluePlus.startScan();

// スキャン停止
await FlutterBluePlus.stopScan();

// リスナーのキャンセル
subscription.cancel();

デバイスへの接続

// 切断時のリスナーを設定
device.connectionState.listen((BluetoothConnectionState state) async {
    if (state == BluetoothConnectionState.disconnected) {
        // デバイスが切断された時の処理
        print("${device.disconnectReasonCode} ${device.disconnectReasonDescription}");
    }
});

// デバイスへの接続
await device.connect();

// デバイスから切断
await device.disconnect();

これは、FlutterBluePlusの基本的な使用例です。詳細な情報や他の機能については、公式のドキュメントやGitHubリポジトリを参照してください。

トラブルシューティング

更新が早すぎるので、githubを見てください。

GitHub - boskokg/flutter_blue_plus: Flutter plugin for connecting and communicationg with Bluetooth Low Energy devices, on Android and iOS
Flutter plugin for connecting and communicationg with Bluetooth Low Energy devices, on Android and iOS - boskokg/flutter...

Buy me a coffee!

Flutterアプリ開発
シェアする
sogaをフォローする
タイトルとURLをコピーしました