Android 기기에서 Android 태블릿의 데이터를 읽고 쓰는 Android 앱을 작성하려고합니다. 태블릿과 임베디드 장치는 USB를 통해 직렬 변환기에 연결됩니다. 임베디드 장치에서 안드로이드 타블렛으로 데이터를 읽을 수 있습니까? 내가 볼 수있는 샘플 코드는 무엇입니까?Android 3.1의 USB 포트를 통한 읽기 및 기록기 데이터
답변
직렬 변환기는 USB 장치이므로 안드로이드 타블렛은 USB 호스트처럼 작동해야합니다. 이 기능은 Android 3.1부터 사용할 수 있습니다. API 설명서는 android developer page에 있으며 코드 예제가 포함되어 있습니다.
변환기와 실제로 통신하려면 내부 부품에 대해 좀 더 알아봐야합니다. 시장에 여러 가지 장치가 있으며 일부는 USB HID를 사용하고 다른 일부는 USB CDC 장치 클래스를 사용하거나 심지어는 준수하지도 않습니다 모든 클래스. 리눅스 lsusb 명령은 장치/인터페이스 설명자를 얻는 데 도움이 될 수 있습니다. 장치가 하나만있는 경우
전형적인 CDC 장치에의 통신 장치 클래스 사양을 참조하십시오이 대량 엔드 포인트와 상호 작용 아마 인터페이스를 등 설치에 관한 요구한다 전송 속도를 사용해야합니다 IN 및 하나의 OUT 대량 끝점 (컨트롤 끝점 옆)을 사용하면 OUT 끝점에서 UsbDeviceConnection.bulkTransfer() 메서드를 사용하여 직렬 줄에 일부 바이트를 쓰려고 할 수 있습니다. 이것이 제대로 작동 할 수있는 좋은 기회가 있지만 깨끗한 구현을 위해서는 클래스 스펙을 고수해야합니다. 나는 성공적으로 사용했습니다 https://code.google.com/r/felixhaedicke-usb-serial-for-android
:
안녕하세요, 알렉산더 정보 주셔서 감사합니다. 내 연결은 태블릿이 USB/직렬 케이블로 연결되어 있습니다.이 케이블의 한쪽 끝은 USB 포트이고 다른 쪽 끝은 직렬 포트입니다. 직렬 포트는 다른 내장형 장치와 연결되는 다른 직렬 케이블과 연결됩니다. 내가 USB 호스트 모드에 대해 이해할 수없는 한 가지는 vendro id, product id, class, subclass를 지정해야한다는 것입니다. 그 정보를 어떻게 알 수 있습니까? 리눅스 머신과 USB/시리얼 케이블을 연결하고 찾아 내면 되나요? 감사!!! – dan
안녕하세요 Bill, 네, 맞습니다. Linux 또는 Mac이 여기에 편리합니다. Windows에서도 도구가있을 수 있지만 리눅스에서는 정말 간단합니다. 당신은 리눅스 라이브 CD/USB 스틱 부팅 버전을 사용할 수 있습니다. 그런 다음 변환기가 PC에 연결된 쉘에서 lsusb를 실행하십시오. 명령의 출력에 나타나야합니다. 광산은 다음과 같습니다 :'Bus 004 Device 002 : ID 067b : 2303 Prolific Technology, Inc. PL2303 Serial Port' – Alexander
ID 뒤의 숫자는 장치의 _vendor_ : _product_ ID입니다. 그런 다음'lsusb -v -d 067b : 2303'을 실행하여 전체 장치 설명자를 얻습니다. 거기에서 당신은 클래스와 하위 클래스에 대해 읽을 수 있습니다. USB에 익숙하지 않은 것처럼 보였으므로 전체 USB 개념에 대해 약간 읽는 것이 좋습니다. 어쩌면 [여기] (http://www.beyondlogic.org/usbnutshell/usb1.shtml). 이렇게하면 목표를 달성하는 데 도움이됩니다. – Alexander
는 이미 구현 된 PL2303 드라이버가 이식 된 USB-를위한 안드로이드 lib 디렉토리를 사용하는 것이 좋습니다.
- 1. USB 포트를 통한 데이터 전송
- 2. USB 포트를 통한 음성 인식
- 3. Android USB 첨부 파일에서 데이터 읽기
- 4. 읽기 USB 인터럽트 데이터
- 5. 시리얼 포트를 통한 데이터 전송
- 6. USB-GPS 수신기에서 데이터 읽기
- 7. 시리얼 포트를 통한 데이터 전송
- 8. USB 포트를 통해 장치와 통신하는
- 9. USB BulkTransfer 데이터 읽기 가능
- 10. Datastream througth USB 포트를
- 11. USB 포트를 통해 데이터를 전송
- 12. 리눅스에서 USB 포트를 읽는 중
- 13. USB 대용량 Storge 또는 USB 포트를 프로그래밍 방식으로 차단 하시겠습니까?
- 14. 안드로이드에서 USB 포트를 감지하는 방법은 무엇입니까?
- 15. 병렬 포트를 통한 문자열 표시를위한 다중 주소 및 데이터
- 16. USB GPS가 시리얼 포트를 가장합니다.
- 17. USB 포트를 사용한 일반 인쇄
- 18. 직렬 포트를 통한 OpenSSL
- 19. 소켓과 포트를 통한 혼란
- 20. 포트를 통한 메시지 수신 및 수신
- 21. 직렬 포트에서 데이터 읽기
- 22. Android Accelerometer 데이터 읽기
- 23. 읽기 데이터
- 24. Android usb 및 PC 통신
- 25. Android Honeycomb 및 USB Devices
- 26. 계층 구조 및 판독기 기록기 뮤텍스 잠금
- 27. 병렬 포트를 통한 직렬 입력
- 28. 대체 포트를 통한 mysql 연결
- 29. COM 포트를 통한 다중 변수
- 30. 병렬 포트를 통한 RC 자동차
[this] (http://developer.android.com/guide/topics/usb/accessory.html) 또는 [this] (http://developer.android.com/guide/topics/usb)를 보았습니까? /host.html) documentation? – Jack
예, 잭, 나중에 읽었습니다. 나는 새로운 질문을 시작했다. 한번보세요. 감사! – dan