투케이2K

624. (Android/Java) UsbManager getDeviceList 사용해 USB 시리얼 통신 가능한 장비 확인 실시 본문

Android

624. (Android/Java) UsbManager getDeviceList 사용해 USB 시리얼 통신 가능한 장비 확인 실시

투케이2K 2023. 8. 10. 07:47

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

 

        // ---------------------------------------------------------------
        // [로직 처리 실시]
        // ---------------------------------------------------------------
        try {

            /**
             * ------------------------------------
             * [요약 설명]
             * ------------------------------------
             * UsbManager :  USB 상태에 액세스하고 USB 장치와 통신할 수 있습니다.
             * ------------------------------------
             * 해당 기능을 사용하기 위해서는 안드로이드 기기에서 USB HOST 기능을 제공해야 하므로
             * AndroidManifest.xml 파일에 아래의 지원 설정을 등록해 줍니다
             *
             * <uses-feature android:name="android.hardware.usb.host" />
             * ------------------------------------
             * 또한, 기기와 통신을 하기위해서는 com.android.example.USB_PERMISSION 권한을
             * 사용자로부터 받아야 합니다
             * ------------------------------------
             * 참고 사이트 :
             *
             * https://developer.android.com/guide/topics/connectivity/usb/host?hl=ko
             * ------------------------------------
             * */

            // [UsbManager 객체 생성 : USB 상태에 액세스하고 USB 장치와 통신]
            UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

            // [getDeviceList() 메서드를 사용해 연결된 모든 USB 기기의 해시 맵을 가져옵니다]
            HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
            Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();

            S_Log._W_("getDeviceList 정보 확인", new String[]{
                    "size :: " + manager.getDeviceList().size()
            });

            while(deviceIterator.hasNext()){

                UsbDevice device = deviceIterator.next();

                S_Log._W_("UsbDevice 정보 확인", new String[]{
                        "getDeviceName :: " + device.getDeviceName(),
                        "getManufacturerName :: " + device.getManufacturerName(),
                        "getProductName :: " + device.getProductName(),
                        "getDeviceId :: " + device.getDeviceId(),
                        "getVendorId :: " + device.getVendorId(),
                        "getSerialNumber :: " + device.getSerialNumber()
                });
            }

        }
        catch (Exception e) {
            S_Log._printStackTrace_(A_Intro.this, "로직 처리 수행 에러", null, e);
        }

 

반응형
Comments