[flutter] 플러터(Flutter)에서 블루투스 기능 사용하기

플러터(Flutter)는 Google에서 개발한 모바일 애플리케이션 개발 프레임워크로, Android와 iOS 플랫폼에서 공통된 코드로 앱을 개발할 수 있습니다. 이번에는 플러터를 사용하여 블루투스 기능을 사용하는 방법에 대해 알아보겠습니다.

1. 플러터(Flutter)에서 블루투스 기능을 사용하기 위한 패키지 추가하기

플러터에서 블루투스 기능을 사용하기 위해서는 flutter_blue 패키지를 추가해야 합니다. 이 패키지는 플러터에서 블루투스 기기 스캔, 연결, 서비스 및 특성 읽기 및 쓰기 등과 같은 블루투스 관련 작업을 수행할 수 있는 API를 제공합니다.

프로젝트의 pubspec.yaml 파일을 열고 dependencies 섹션에 다음과 같이 flutter_blue 패키지를 추가하세요:

dependencies:
  flutter_blue: ^0.7.3

변경 사항을 적용하기 위해 터미널에서 flutter pub get 명령을 실행하여 패키지를 다운로드받으세요.

2. 블루투스 기기 스캔하기

플러터에서 블루투스 기기를 스캔하려면 FlutterBlue 인스턴스를 생성하고 startScan() 메서드를 호출하여 스캔을 시작해야 합니다. 다음은 간단한 예제 코드입니다:

import 'package:flutter/material.dart';
import 'package:flutter_blue/flutter_blue.dart';

class BluetoothScanPage extends StatefulWidget {
  @override
  _BluetoothScanPageState createState() => _BluetoothScanPageState();
}

class _BluetoothScanPageState extends State<BluetoothScanPage> {
  FlutterBlue flutterBlue = FlutterBlue.instance;
  List<ScanResult> scanResults = [];

  @override
  void initState() {
    super.initState();
    startScan();
  }

  void startScan() {
    flutterBlue.startScan(timeout: Duration(seconds: 4));
    flutterBlue.scanResults.listen((results) {
      setState(() {
        scanResults = results;
      });
    });
  }

  @override
  void dispose() {
    super.dispose();
    flutterBlue.stopScan();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Bluetooth Scan'),
      ),
      body: ListView.builder(
        itemCount: scanResults.length,
        itemBuilder: (context, index) {
          ScanResult result = scanResults[index];
          return ListTile(
            title: Text(result.device.name),
            subtitle: Text(result.device.id.toString()),
            onTap: () {
              // 블루투스 기기에 연결하는 코드 작성
            },
          );
        },
      ),
    );
  }
}

위의 코드는 BluetoothScanPage라는 StatefulWidget을 생성하고, 블루투스 기기를 스캔하는 간단한 화면을 구성합니다. startScan() 메서드에서 스캔을 시작하고, scanResults 리스트에 스캔 결과를 저장한 후 화면에 표시합니다. 또한 탭하여 블루투스 기기에 연결하는 코드를 작성할 수 있습니다.

이제 블루투스 기기를 스캔하는 기능을 가진 앱을 개발할 수 있습니다.

참고 자료