안드로이드 스튜디오

초보를 위한 안드로이드 스튜디오 블루투스 ListPIcking 코드

coding art 2020. 3. 22. 20:23
728x90

 

1.Android.Manifest.xml 코드 편집

스마트폰에서 안드로이드 스튜디오 블루투스 앱 코드를 작성하기 위해서는 반드시 Android.Manifest.xml에서 블루투스를 사용하기 위한 승인(permission) 과정이 필요하다. 스마트폰에서 외부와의 통신은 별도의 하드웨어 칩 즉 궐컴 칩과 같은 모뎀 침이 담당하는 것이 상례이므로 안드로이드 스튜디오에서 블루투스 하드웨어 사용 요청에 따른 승인이 필수적이며 아울러 코드 작성 후에도 PC 자체에서의 Emulator에 의한 테스트가 불가능하다. 그 이유는 안드로이드 스튜디오가 설치된 PC에서는 승인을 해줘야 할 안드로이드 블루투스 하드웨어가 부재하기 때문이다.

 

다음과 같이 9줄의 명령이 들어가는데 이 모두가 반드시 필수적인 것은 아니다. 따라서 각 명령을 대상으로 삭제 후 여러경우의 수에 대한 테스트 시행이 불가결하다.

1번은 블루투스 하드웨어 선언으로 상징적이며 나머지가 있다면 없어도 무방하다.

2번이 없으면 실행 시에 아예 블루투스 앱이 중지 된다.

3번이 없으면 실행 시에 ON OFF Paring Devices 출력 가능하나 New Discover 작업이 안되며 블루투스 앱이 중지 된다.

4번 줄은 없어도 앱 실행이 가능하다

5번 줄이 없어도 네 번째가 있으면 앱 실행 가능하다

45번 줄이 함께 없어도 앱 실행 가능하다

6번 줄이 없어도 앱 실행이 가능하다

7번 줄이 없어도 앱 실행이 가능하다

6,7,8,9 4줄이 없어도 앱 실행은 되지만 아두이노 LED on OFF 가 되지 않는다

요약해서 반드시 필수적인 최소한의 명령은 1, 2, 3, 6, 7 이다.

 

2. Bluetooth ListPicking 레이아웃 디자인 activity_main.xml

스마트폰의 블루투스 또는 WiFi 무선 통신에서 첫 단계 작업은 항상 주위의 블루투스 발신 원을 찾아 리스팅하는 작업이며 이어서 선택 클릭하여 블루투스를 연결하게 된다. 블루투스의 연결단계부터는 안드로이드 코드의 길이가 지나치게 길어 한 번에 이해하여 처리하기가 곤란하므로 일단 ListPicking 단계까지 한하여 코드를 작성해 보자. ListPicking 이란 단어는 앱 인벤터에서 사용하는 단어이다.

Text 모드에서의 코드 보다는 Components 와 레이아웃을 직접 관찰하도록 하자.

imageView 의 로고는 drawable png 그림 파일로 입렵해 두도록 한다. Turn on 은 스마트폰에서 드래그 하여 블루투스 아이콘을 눌러 ON 시키는 작업과 동일하며 Turn OFF 는 그 반대 이다. GET VISIBLE 은 다른 사용자의 스마트폰이 내 스마트폰 블루투스를 인식하도록 허용하며 Default 로 시간제한 120초를 가한다. LIST DEVICES 버튼을 클릭하면 주위의 블루투스 소스 원을 찾아 리스팅하게 된다. 아울러 블루투스로 통신을 할 경우 정보를 읽고 상황을 모니터링 하여 사용자가 볼 수 있도록 디스플레이 해야 할 것이나 여기서는 리스팅 작업까지만 살펴보도록 한다.

 

3, MainActivity 코드

ListPicking 된 블루투스 소스들이 ListView 처리를 위한 입력 데이터가 되며 이 데이터들은pairedDevices에 저장된다. 한편 안드로이드가 제공하는 블루투스용Class 로서 BluetoothAdapter API 가 있으며 이 예제 코드에서처럼 사용한다. 하지만 이 방법 말고도 다른 방법도 있으므로 다음 예제에서 소개하기로 하자. 아울러 Pairing 된 디바이스들을 출력하기 위해 ListView를 설정하자.

첫 번째 OverideonCreate을 살펴보자. 화면에 배치된 4개의 버튼 및 그 아랫 공간에 위치하게 될 ListView 가 스미트폰의 View를 구성하게 된다.

 

버튼1 TURN on을 클릭하면 public void on intent 가 실행되며 반면에 버튼3 visible 이 클릭되면 public void off intent 가 실행되어 해당하는 스마트폰 화면이 나타난다.

 

마지막으로 public void list를 살펴보면 ListView 처리를 위한 Array List, ArrayAdapter 및 데이터 리스팅을 위한 list.add 가 있음을 알 수 있다.

첨부된 코드를 다운받아 블루투스 ListPicking 과정을 관찰해 보자.

MyBlooth.zip

 

다음의 데모 유튜브 영상 참조하세요. 구독 좋아요 꼭 부탁드려요!

https://youtu.be/fWcGUgjY4fw

 

MyBlooth.zip
0.14MB