Я изучал примеры, и я до сих пор не понимаю, как реально читать данные с порта USB в приложении для Android. Я бы хотел, чтобы это было событие/намерение, но я довольно потерял, как это сделать. У меня есть BroadcastReceiver, но я не уверен, что Intent.action мне нужно искать для сбора данных. Любое понимание очень ценится!Android для Arduino USB Communication: Чтение
Редактировать: Чтобы уточнить, что мое устройство Android - это Nexus 9, работающий как USB-хост, и я хочу общаться с Arduino Leonardo.
Edit2: На данный момент у меня есть эскиз Arduino, который отправляет сообщение через серийный каждые 2 секунды. У меня есть кнопка, которая, исходя из моего понимания, должна читать буфер при нажатии, но на самом деле ничего не делает.
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(), я получаю шестнадцатеричные значения, которые меняют каждое нажатие, но я не уверен, как это интерпретировать.
Редактировать 3: Еще какая-то информация по прошествии некоторого времени, я отключил Arduino Leonardo, показанный как устройство ввода клавиатуры HID в соответствии с Arduino being recognized as keyboard by android. Я просто изменил USBDesc.h, чтобы удалить «#define HID_ENABLED». Это не изменило ситуацию. Тем временем я также реализовал библиотеку Physicaloid USB, и это оказалось неудачным. Я в процессе отладки/конвертирования библиотеки USB-serial-for-android mik3y, но до сих пор не смог протестировать ее.
Я не уверен, если это то, что вы искали. Надеюсь, поможет. –
Да, я видел этот фрагмент кода раньше, но я до сих пор не понимаю, какая часть этого имеет отношение к чтению входящих данных. Насколько я понимаю, что происходит, это просто настройка разрешений на коммуникацию устройства, а не чтение чего-либо с USB. –
Сообщение начинается дальше в туте .. Встаньте, я добавлю еще немного к моему ответу. Вы зарегистрировали свой ресивер? –