본문 바로가기

카테고리 없음

[React Native - Expo] BLE 블루투스 기능 _ (1) 환경설정, 안드로이드 폰에 앱 설치

React Native Expo CLI를 활용하여 졸업프로젝트 앱을 개발하고 있다.

 

앱 내에서 블루투스 기능을 구현하고자 하여

Expo에서 Bluetooth Low Energy (BLE)  사용한다.

 

구현 과정에 대해 한국어 레퍼런스가 없어서 내가 포스팅을 시작했다.

제발 내가 성공하길.. 우리 프로젝트에 블루투스 꼭 할 수 있기를🙏

 

- 패키지 다운로드

npx expo install react-native-ble-plx

 

- App.json

{
  "expo": {
    "plugins": [
      "expo-font",
      "react-native-ble-plx",
        {
          // BLE가 백그라운드에서도 작동하고
          "isBackgroundEnabled": true,
          // 기기가 BLE 중심 및 주변 기기로 모두 작동
          "modes": ["peripheral", "central"],
          // 블루투스 사용 권한 허용 안내 메세지
          "bluetoothAlwaysPermission": "Allow $(PRODUCT_NAME) to connect to bluetooth devices"
        }
    ]
  }
}

 

Expo의 BLE 설정 제한:
Expo Go 자체에 BLE 기능이 포함되어 있지 않기 때문에 BLE 기능을 사용할 수 없다.

따라서 실제 Android 또는 ios 기기를 사용해야 한다.

Expo 개발 빌드를 생성하여 BLE 기능을 테스트할 수 있다.

 

-> Expo Go 에서 BLE '테스트' 불가. 그러나 EAS 빌드 후 실제 배포 환경에서는 BLE 기능이 잘 작동하게 된다.

 

- 개발 빌드 만들기

개발 빌드 만들기 - Expo Documentation

 

Create a development build

Learn how to create development builds for a project.

docs.expo.dev

 

나는 윈도우 환경의 노트북 + 아이폰 (주 기기 -테스트할 기기)

Windows 환경에서는 EAS 빌드를 통해 .ipa 파일을 생성 TestFlight를 통해 아이폰에서 설치해야 함.

-> 생각보다 귀찮다. 그래서 오래된 기기이지만 공기계인 안드로이드폰으로 테스트하겠다.

 

 

- 안드로이드로 실행 -> 디바이스에 앱 설치

npx expo run:android

 

변경사항 파일 목록에 굉장히 많은 파일이 생겼다.

 

그리고 안드로이드 테스트 폰에 앱이 설치되기까지 20분 넘게 걸렸다.

configuring 100% 가 된다고 끝이 아니다..

(우리 프로젝트, 블루투스 말고 거의 모든 기능을 완성한,, 그리고 꽤 기능이 많은,,

그래서 용량이 커서 그런가,,,)

 

이젠 executing 이 시작되었다......


30분 걸렸다...

 

53분의 기다림 끝에 드디어 QR이 떴다.

 

53분을 기다렸으니 연결이 원활할리 있나..

다시 실행한다..

 

다시 실행하면 2분컷~

 

QR을 통한 입장 오류 - 사용 가능한 데이터가 없습니다.

adb kill-server
adb start-server
adb devices

 

했더니 테스트 디바이스에 앱이 설치됐다!!!!


※ 안드로이드 폰에 앱을 설치
 [ npx expo run:android ]

※ 앱을 설치했더라도 개발 서버는 실행해야한다. [ npx expo start ]