나는 예제를 살펴 봤는데 안드로이드 어플리케이션의 USB 포트에서 실제로 데이터를 읽는 방법에 대해서는 아직 명확하지 않습니다. 나는 그것을 이벤트/의도 주도로하고 싶습니다만, 저는이 일을하는 방법에 대해 꽤 분실되어 있습니다. BroadcastReceiver가 있지만 Intent.action에서 데이터를 수신하기 위해 필요한 정보가 무엇인지 확신 할 수 없습니다. 통찰력이 인정됩니다!Android to Arduino USB 통신 : 읽기
편집 : 내 Android 기기를 명확히하기 위해 USB 호스트로 실행되는 Nexus 9가 있으며 Arduino Leonardo와 통신하고 싶습니다.
편집 2 :이 시점에서 2 초마다 일련의 메시지를 보내는 Arduino 스케치가 있습니다. 버튼을 눌렀을 때 버퍼를 읽어야하지만 실제로는 아무 것도하지 않는 버튼이 있습니다.
TextView displayMessages = (TextView)findViewById(R.id.textView);
try
{
byte[] msgBytes = new byte[1000];
connection.bulkTransfer(input, msgBytes, msgBytes.length, TIMEOUT);
String msgString = new String(msgBytes, "UTF-8");// msgBytes.toString();
displayMessages.setText(msgString);
}
catch (Exception e)
{
displayMessages.setText(e.getMessage());
}
그 결과 textView가 비어 있습니다. 변환을 수행하지 않고 바이트 []. toString()을 삭제하면 각 프레스가 바뀌는 16 진 값을 얻지 만이를 해석하는 방법을 모르겠습니다.
편집 3 : 잠시 시간이 지났기 때문에 더 많은 정보가 있습니다. Arduino being recognized as keyboard by android에 따라 HID 키보드 입력 장치로 표시되는 Arduino Leonardo를 비활성화했습니다. 간단히 "#define HID_ENABLED"를 제거하기 위해 USBDesc.h를 수정했습니다. 이것은 상황을 변화시키지 않았다. 그동안 필로피 형 USB 라이브러리도 구현 했으므로 성공하지 못했습니다. 나는 mik3y의 USB-serial-for-android 라이브러리를 디버깅/변환하는 중이지만 지금까지는 테스트 할 수 없었다.
a usb accessory.으로 장치를 설정하는 유사한 과정이있다. 희망이 도움이됩니다. –
그래, 이전에이 코드 조각을 보았습니다. 그러나 나는 그 부분이 들어오는 데이터를 읽는 것과 관련이 있는지 이해하지 못합니다. 늘어나는 일이 무엇인지 이해하는 한, 단순히 USB 통신을 사용하지 않고 장치 통신 권한을 설정하는 것입니다. –
의사 소통이 더 아래쪽에서 시작됩니다. 잠깐만 기다려주세요. 내 대답에 좀 더 추가 할 것입니다. 수신자를 등록 했습니까? –