나는 안드로이드를 사용하여 장치의 COM 포트에 데이터를 읽고 쓰려면 javax.comm 패키지를 사용하지만 apk 파일을 설치하면 장치의 포트가 표시되지 않으므로 권한이 있습니다. 매니페스트 파일에 추가해야하는 항목은 무엇입니까?안드로이드에서 COM/시리얼 포트에 데이터를 읽고 쓰는 방법은 무엇입니까?
답변
운영 체제와 관련된 문제입니다. Android runs Linux under the hood이고 Linux는 Windows와 다른 방식으로 직렬 포트를 처리합니다. javax.comm
에도 win32com.dll
, driver file이 포함되어 있으며 Android 기기에는 설치할 수 없습니다. 당신이하려는 일을 성취 할 수있는 길을 찾으면 리눅스 환경에서 실제로 "COM"포트를 찾을 수 없습니다. 직렬 포트는 다른 이름으로 이동합니다.
Windows Com Port Linux equivalent
COM 1 /dev/ttyS0
COM 2 /dev/ttyS1
COM 3 /dev/ttyS2
따라서 아이디어가 효과적이면이 이름을 찾아야합니다.
다행히도 안드로이드는 USB 장치와 인터페이스하기위한 조항을 가지고 있습니다 (병렬 또는 RS-232 포트와 달리 연결하려는 것으로 가정). USB Host. 여기 당신이 원하는 것 무엇으로 이렇게하려면, 당신은 당신의 장치를 설정합니다 :
- 는
USBManager
. - 이 장치를 찾아옵니다.
USBInterface
및USBEndpoint
을 얻으십시오.- 연결을 엽니 다.
- 데이터를 전송하십시오.
다음은 어떻게 수행 할 것인지 대략적인 예상입니다. 물론 코드에는 더 성숙한 방법으로 작업 할 것입니다.
String YOUR_DEVICE_NAME;
byte[] DATA;
int TIMEOUT;
USBManager manager = getApplicationContext().getSystemService(Context.USB_SERVICE);
Map<String, USBDevice> devices = manager.getDeviceList();
USBDevice mDevice = devices.get(YOUR_DEVICE_NAME);
USBDeviceConnection connection = manager.openDevice(mDevice);
USBEndpoint endpoint = device.getInterface(0).getEndpoint(0);
connection.claimInterface(device.getInterface(0), true);
connection.bulkTransfer(endpoint, DATA, DATA.length, TIMEOUT);
독서의 즐거움을위한
추가 자료 : http://developer.android.com/guide/topics/connectivity/usb/host.html
나는이 코드를 실행하여 이제 만족시킬 수 있습니까? USB 장치에 명령이 도달했는지 여부를 확인하는 방법이 있습니까? 또한이 메시지가 성공적으로 장치에 도달하면 어떤 명령을 반환해야한다는 것을 알고 싶습니다. 회신 해 주셔서 감사합니다. –
- 1. mysql에서 빠르게 데이터를 읽고 데이터를 쓰는 방법?
- 2. 소켓에서 거대한 데이터를 읽고 socketchannel에 쓰는 방법
- 3. 안드로이드에서 BSON 문서를 읽고 쓰는 방법
- 4. 안드로이드에서 1024 미만의 포트에 바인딩하는 방법은 무엇입니까?
- 5. Java에서 직렬 통신을 읽고 쓰는 방법은 무엇입니까?
- 6. 장치에서 매우 큰 데이터를 읽고 쓰는 방법
- 7. STL C++ 문자열을 읽고 쓰는 방법은 무엇입니까?
- 8. Google 스프레드 시트를 읽고 쓰는 방법은 무엇입니까?
- 9. ActionScript에서 http 헤더를 읽고 쓰는 방법은 무엇입니까?
- 10. 파이썬을 사용하여 파일을 읽고 쓰는 방법은 무엇입니까?
- 11. 블록 램을 사용하여 읽고 쓰는 방법은 무엇입니까?
- 12. 텍스트 파일을 읽고 쓰는 방법은 무엇입니까?
- 13. Perl에서 파이프를 읽고 쓰는 방법은 무엇입니까?
- 14. SoundPool 객체를 읽고 Parcel에 쓰는 방법은 무엇입니까?
- 15. 여러 파일을 읽고 쓰는 방법은 무엇입니까?
- 16. plist에 데이터를 쓰는 방법은 무엇입니까?
- 17. 서버에 데이터를 쓰는 방법은 무엇입니까?
- 18. 스레드를 사용하여 직렬 포트에서 데이터를 읽고 쓰는 방법
- 19. VHDL에서 내부 아키텍처의 두 출력 포트에 쓰는 방법은 무엇입니까?
- 20. 다른 프로세스에서 읽고 쓰는 것
- 21. SSIS : WebSphere MQ를 읽고 변환하고 플랫 파일에 쓰는 방법은 무엇입니까?
- 22. webservice에서 Oracle MQ에 메시지를 읽고 쓰는 방법은 무엇입니까?
- 23. javaScript에서 SWFUpload를 사용하여 파일을 읽고 쓰는 방법은 무엇입니까?
- 24. 직렬 포트에서 읽고 쓰는 방법
- 25. 읽고 쓰는 클래스의 이름
- 26. tcl에서 읽고 쓰는 것
- 27. Android에서 디스크에 UTF-8을 읽고 쓰는 방법은 무엇입니까?
- 28. objective-c에서 plist 파일을 읽고 쓰는 방법은 무엇입니까? (iPhone SDK)
- 29. 안드로이드에서 네이티브 직렬 포트에 액세스
- 30. CXML 문서를 읽고 쓰는 가장 좋은 방법은 무엇입니까?
중복 질문 :의 http://stackoverflow.com/questions/4621580/using-serial-port-rs-232-in-android – Robert
가능한 중복 [안드로이드에서 직렬 포트 RS-232를 사용합니까?] (http://stackoverflow.com/questions/4621580/using-serial-port-rs-232-in-android) – Programmer