- PVSM.RU - https://www.pvsm.ru -
Все доброго времени суток!
Однажды я задумался над разработкой приложения, которое требовало бы общения с hardware устройством, через COM порт. Хотя Android заботливо предоставляет api для работы с usb устройствами, оно мне к сожалению не подходило, так как хотелось осуществлять поддержку моего старого планшета на базе андроид версии 2.2. Стандартное api ото Гугла, не подходило
по двум причинам:
Итак, после длительного поиска в интернете, я наткнулся на очень интересное решение android-serialport-api [1]. Данное решение представляет собой Java обертку в которой через JNI в которой осуществляются вызовы к USB устройству.
Разработчики библиотеки предлагают 4 различных варианта подключения Android устройства к COM порту через USB.

Так как я имел в своем распоряжении планшет с USB host портом, и у меня под рукой имеется USB to RS232 преобразователь, то я пошел по варианту номер 2.
Преимущества и недостатки такого решения заключаются в
Преимущества
Недостатки
Итак приступим!
Тут я опишу подход в использовании этой библиотеки.
serialPortFinder.getAllDevices(); // так мы попробуем найти все usb-хост в файловой системе.
serialPortFinder.getAllDevicesPath(); // и пути к ним
SerialPort mSerialPort = new SerialPort(foundedDeviceFormSerialPortFinder, 9600, 0);
OutputStream outputStream = mSerialPort.getOutputStream();
InputStream inputStream = mSerialPort.getInputStream();
// дальше собственно и происходит чтение из стрима или запись в него
Для корректной работы serialPortFinder необходимо чтобы переходник USB-RS232 был подключен, определен в /dev.
Вот таким нехитрым способом можно осуществлять общение с очень большим количеством железа через COM порт,
Автор: Artemis4You
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/android-development/23508
Ссылки в тексте:
[1] android-serialport-api: http://code.google.com/p/android-serialport-api
[2] Источник: http://habrahabr.ru/post/163913/
Нажмите здесь для печати.