можно импортировать javax.comm на Android?хочу открыть серийное устройство - PullRequest
0 голосов
/ 11 августа 2011

У меня рутованное устройство Android с подключенным последовательным USB-устройством. Устройство отображается как "/ dev / ttyUSB5"

Я хотел бы открыть последовательный порт и читать / записывать с него. Прежде всего ... в Android, он даже позволит мне читать / открывать / dev / ttyUSB5? Или в приложении мне будет запрещено касаться / dev? Если я не могу ничего трогать в / dev, то все это не имеет значения.

Однако, если я могу, то мне интересно, можно ли импортировать javax.comm, чтобы я мог общаться с последовательным устройством.

На данный момент я могу обойти это, создав собственное приложение C, которое открывает последовательный порт, а затем использую сокет для чтения / записи в последовательный порт в Java. Однако было бы намного лучше сделать все это на Java.

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

в Android, позволит ли мне читать / открывать / dev / ttyUSB5?Или в приложении мне будет запрещено касаться / dev?

Я не уверен, будут ли права на это иметь обычное приложение SDK.Приложение, работающее с правами root, будет, если у вас есть рутированное устройство.

Однако, если я могу, то мне интересно, можно ли импортировать javax.comm, чтобы я мог общаться с последовательнымустройство.

Не напрямую.Инструменты сборки не хотят, чтобы вы импортировали классы java.* и javax.*.И я не знаю, как быстро javax.comm превращается в собственный код, даже на стандартной Java.

Что вы можете попробовать, так это посмотреть, есть ли в Apache Harmony реализация javax.comm, и взглянутьна него.Если кажется, что он соответствует вашим потребностям, вы можете скопировать соответствующие классы, а затем преобразовать их в новый пакет (например, org.gynchis.comm).

Однако общий ответ best если возможно, попытаться придерживаться ADK и новых классов USB , добавленных в API Level 10. Я не специалист по аппаратному обеспечению, поэтому я понятия не имею, будет ли то, что там, будет соответствовать вашим потребностямили если у вас есть устройство с достаточно новой версией Android для такой поддержки.

0 голосов
/ 16 октября 2012

Да, вы можете использовать / dev / tty * для доступа к вашему последовательному порту.Проверьте это: serialport-api .Я проверил это, но, конечно, вам нужно иметь / dev / tty * с правильными правами.Это находится в файле init.rc (chmod 0666 / dev / ttyUSB5).Если вы работаете во встроенной системе, это легко исправить.Если вы хотите поработать над «любым готовым планшетом на рынке», это более сложно.Я верю, что единственный способ - это укорениться.Единственный недостаток этого пакета - кажется, что он использует поток, который постоянно опрашивает входной поток, что заставляет меня поверить, что он не очень эффективно использует процессор / аккумулятор.Я ищу способ просто получить что-то, что разбудит мою нить, когда данные будут доступны на приемной стороне.

...