투케이2K

288. (AndroidStudio/android/java) 블루투스 장비 연결된 상태 확인 - bluetooth device isConnected 본문

Android

288. (AndroidStudio/android/java) 블루투스 장비 연결된 상태 확인 - bluetooth device isConnected

투케이2K 2022. 4. 1. 09:52

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java

 

[소스 코드]

    // TODO [사용자 모바일 디바이스 블루투스 장비 연결 상태 확인]
    public static Boolean bluetoothConnectState(Context mContext){

        /**
         * // -----------------------------------------
         * [bluetoothConnectState 메소드 설명]
         * // -----------------------------------------
         * 1. 사용자 모바일 디바이스 블루투스 장비 연결 상태 확인
         * // -----------------------------------------
         * 2. 호출 방법 : if (C_StateCheck.bluetoothConnectState(A_Main.this) == true) { } else { }
         * // -----------------------------------------
         * 3. 리턴 결과 : 블루투스 장비가 연결된 경우 true / 아니면 false
         * // -----------------------------------------
         * */

        // [리턴 결과 반환 변수 선언]
        boolean returnData = false;
        String deviceName = "";
        try {
            /*
            * 1. [페어링 된 블루투스 장비 목록을 얻어옵니다]
            * 2. 블루투스 기능이 활성화된 경우 BluetoothDevice 리스트 목록 표시 / 블루투스 기능이 비활성인 경우 목록 표시 안됨
            * */
            Set<BluetoothDevice> bluetoothDevices = BluetoothAdapter.getDefaultAdapter().getBondedDevices();
            Log.i("---","---");
            Log.d("//===========//","================================================");
            Log.i("","\n"+"[C_StateCheck >> bluetoothConnectState() :: 블루투스 장비 연결 상태 확인 실시]");
            Log.i("","\n"+"[페어링된 블루투스 장비 목록 :: "+String.valueOf(bluetoothDevices.toString())+"]");
            Log.d("//===========//","================================================");
            Log.i("---","---");

            // [페어링된 블루투스 장비 목록에서 현재 연결된 상태 체크 실시]
            for (BluetoothDevice bluetoothDevice : bluetoothDevices) {
                try {
                    // [isConnected 메소드를 사용해서 페어링된 블루투스 장비 목록에서 개별 장비가 연결되었는지 확인 실시]
                    Method m = bluetoothDevice.getClass().getMethod("isConnected", (Class[]) null);
                    boolean connected = (boolean) m.invoke(bluetoothDevice, (Object[]) null);

                    if (connected == true){ // TODO [블루투스 장비가 연결된 상태]

                        // [연결된 블루투스 디바이스 이름 확인]
                        deviceName = String.valueOf(bluetoothDevice.getName());

                        ///*
                        if (deviceName != null && deviceName.length()>0
                                && deviceName.trim().equals("") == false && deviceName.trim().equals("null") == false){
                        }
                        else {
                            deviceName = String.valueOf(bluetoothDevice.getAddress());
                        }
                        // */

                        // [리턴 결과 삽입]
                        returnData = true;

                        // [반복문 종료]
                        break;
                    }
                }
                catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
        catch (Exception e){
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[C_StateCheck >> bluetoothConnectState() :: 블루투스 장비 연결 상태 확인 실시]");
            Log.i("","\n"+"[Exception :: "+String.valueOf(e.getMessage())+"]");
            Log.e("//===========//","================================================");
            Log.i("---","---");
        }

        // [로그 출력 실시]
        Log.i("---","---");
        Log.d("//===========//","================================================");
        Log.i("","\n"+"[C_StateCheck >> bluetoothConnectState() :: 블루투스 장비 연결 상태 확인 실시]");
        Log.i("","\n"+"[deviceName :: "+String.valueOf(deviceName)+"]");
        Log.i("","\n"+"[return :: "+String.valueOf(returnData)+"]");
        Log.d("//===========//","================================================");
        Log.i("---","---");

        // [리턴 결과 반환]
        return returnData;
    }
 

[결과 출력]

 

 

반응형
Comments