sheknitrtch
@sheknitrtch

Как в Android эмулировать USB устройство при подключении к ПК?

Хочу написать Android приложение, чтобы при подключении телефона к ПК, он определялся как внешний GPS приёмник.
У телефонов HTC есть возможность работать в режиме 3G модема. Если после подключения по USB выбрать «Интернет Модем», то компьютер будет определять его как сетевую карту и использовать для доступа в Интернет. Я хочу узнать, возможно ли такое для GPS. Хочу информацию с GPS модуля передавать по USB на ПК.
В документации есть рассказ о том, как в Android-е можно работать с внешними USB устройствами или аксессуарами. Но это не то, что мне нужно.
На форумах советуют использовать «Share GPS» или «GPS Over BT». Но это очень неудобно. В случае первой программы надо подключить телефон по USB, запустить приложение, на ПК через ADB сделать port forwarding (то есть обязательно использовать Android SDK), и потом через приложение Franson GPS Gate создать виртуальной ком порт, на который будут передаваться GPS данный. Это как-то не очень удобно.
Подскажите, возможно ли то, что Я хочу, на Java, или с использованием NDK, или с рутованными телефонами!
  • Вопрос задан
  • 10969 просмотров
Пригласить эксперта
Ответы на вопрос 2
@DiverUA
Не являясь Андроид-программистом могу посоветовать более простое, на мой взгляд, решение: связка из ПО для виртуального ком-порта (например www.advancedvirtualcomport.com ), и приложения под Андроид, которое будет передавать данные NMEA по TCP…

Можно воспользоваться каким-либо аппаратным решением: пара ftdi-адаптеров связать rx к tx — на Андроиде появится ком порт и на PC тоже. А работать с ком-портом в хост режиме на Андроиде просто, даже рут не нужен.
Ответ написан
Комментировать
svd71
@svd71
Реальный GPS-приемник занимается тем, что текстовые данные определнного формата передает по com-порту.

Идея, которую предложил DiverUA полностью реализует ваши задачи. Вам лишь нужно написать андроид-сервис, выступающий в роли TCP-сервера и с помощю виртуального com-порта поставлять данные для любых программ на ПК.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы