반응형
안드로이드 장치에서 블루투스 장치목록 가져오기, 장치 연결/해제 이벤트 받기
먼저 AndroidManifest.xml 파일에 use-permission에
"android.permission.BLUETOOTH" 와 "android.permission.BLUETOOTH_ADMIN" 두개를 추가합니다.
블루투스 기기의 리스트는 BluetoothAdapter의 getBondedDevices() 메소드로 가져올 수 있습니다.
아래의 주석을 참고 하시면 코딩에 도움이 되실 겁니다.
//블루투스 Adapter를 가져온다 BluetoothAdapter mBlueToothAdapter = BluetoothAdapter.getDefaultAdapter(); if(mBlueToothAdapter == null){ // 만약 블루투스 adapter가 없으면, 블루투스를 지원하지 않는 기기이거나 블루투스 기능을 끈 기기이다. }else{ // 블루투스 adapter가 있으면, 블루투스 adater에서 페어링된 장치 목록을 불러올 수 있다. SetpairDevices = mBlueToothAdapter.getBondedDevices(); //페어링된 장치가 있으면 if(pairDevices.size()>0){ for(BluetoothDevice device : pairDevices){ //페어링된 장치 이름과, MAC주소를 가져올 수 있다. Log.d("TEST", device.getName().toString() +" Device Is Connected!"); Log.d("TEST", device.getAddress().toString() +" Device Is Connected!"); } }else{ Toast.makeText(getApplicationContext(), "no Device", Toast.LENGTH_SHORT).show(); } } //브로드캐스트리시버를 이용하여 블루투스 장치가 연결이 되고, 끊기는 이벤트를 받아 올 수 있다. BroadcastReceiver bluetoothReceiver = new BroadcastReceiver(){ public void onReceive(Context context, Intent intent) { String action = intent.getAction(); //연결된 장치를 intent를 통하여 가져온다. BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); //장치가 연결이 되었으면 if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) { Log.d("TEST", device.getName().toString() +" Device Is Connected!"); //장치의 연결이 끊기면 }else if(BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)){ Log.d("TEST", device.getName().toString() +" Device Is DISConnected!"); } } }; //MUST unregisterReceiver(bluetoothReceiver) in onDestroy() IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED); registerReceiver(bluetoothReceiver, filter); filter = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED); registerReceiver(bluetoothReceiver, filter);
브로드캐스트 리시버는 액티비티가 종료되는 onDestroy()에서 반드시 unregisterReceiver를 해주어야 합니다.
안그러면 백그라운드에서 계속 돌게되어 메모리를 잡아먹는 현상이..
반응형
'컴퓨터이야기' 카테고리의 다른 글
PC에서 유튜브뮤직 앱처럼 쓰기 (0) | 2020.02.09 |
---|---|
구글 크롬 구버전 설치 및 업데이트 막기! (0) | 2016.12.06 |
WWDC 2014 - 새로운 프로그래밍언어 Swift (0) | 2014.06.03 |
댓글