안드로이드 태블릿과 다른 디바이스가 usb로 연결되있을시 태블릿상에서 현재 시스템에 연결된 serial port number 얻는 방법
작성자박태근 작성시간14.11.02 조회수454 댓글 4댓글 리스트
-
작성자 슈퍼성근 작성시간14.11.03 안녕하세요. ^^
질문하나 올리시는데 이렇게까지 고민하고 올리시라고
공지사항을 제공한 것은 아닙니다.
(프로젝트를 진행하면서 무분별하게 질문을 많이 하시는 분이 계셔서.. ^^;;)
ANR부터 해결하셔야 겠네요.
ANR은 메인스레드에서 5초, 10초, 20초(컴포넌트마다 ANR 시간이 다름)
의 긴작업을 수행할 때 발생됩니다.
이런 작업은 작업 스레드를 생성해서 하셔야 겠지요.
USB의 경우 대기 시간이 긴 작업에 해당합니다.
혹시 어떤 컴포넌트에서 작업 중이신간요?(액티비티, 서비스, 리시버)
그리고 혹시 메인스레드에 대해서 모르신다면
책의 14장을 참조하시거나
-
답댓글 작성자 박태근 작성자 본인 여부 작성자 작성시간14.11.03 일하시느라 바쁘실텐데 소중한 시간 내어서 답변 주셔서 너무 감사합니다. 지적해주신 ANR부분과 3가지 주요 챕터에 대해서 다시 한 번 정독해보겠습니다.
제가 질문하고자 하는 내용은 usb 시리얼 통신 구현중에서 ' C#의 GetPortNames() 함수처럼, 안드로이드 기반의 태블릿 디바이스에는 usb 포트가 연결되었을 때, 시스템에 연결된 직렬 포트를 얻어오는 함수가 어떤 라이브러리에 있는지 여부' 입니다. 하지만 성근님께서 쉽게 파악할 수 없는 형태로 작성한 것 같아 좀 더 성의있게 적었어야 하는 아쉬움이 남습니다. -
답댓글 작성자 슈퍼성근 작성시간14.11.04 박태근 앗 죄송합니다. 늦게 보았네요. ^^
이미 답을 찾으셨을 것 같습니다.
위에
List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager);
소스에서
UsbSerialDriver 클래스를 이용하시면
getDeviceName () 등과 같은 함수들이 제공됩니다.
사실 저도 USB 관련된 프로젝트 등을 수행한 적은 없어
정확히 원하는 답을 드리긴 어렵네요. ^^;
그리고 박태근 님께서 쓰신 글의 내용이라면 매우 훌륭합니다.
이해하기도 쉬웠고 쉽게 파악할 수 있었습니다. 감사합니다.
오히려 제가 잘 몰라서 문제였네요. ^^;