Требуется метод соединения приложения Android с программой C ++ на ПК через USB, который позволил бы приложению Android передавать постоянный поток данных в реальном времени (в основном целочисленные значения) в программу c ++ на ПК через USB и выполнять соответствующие действия , Я знаю, что это проще сделать с помощью Wi-Fi или Bluetooth, но я хочу установить соединение через USB.
Я много раз искал в сети похожие вопросы и пробовал много кода, но ни один из них не помог мне. Я был бы очень признателен за пример кода для части c ++, и это аналог Android, который позволяет сделать это легко.
Вы можете использовать опцию USB Tethering на телефоне. Это должно работать с Android 4.4 и наиболее популярными дистрибутивами Linux из коробки. Тогда вы сможете использовать TCP / IP между Android и ПК. Вы можете использовать протокол многоадресной рассылки UDP для обнаружения услуг (например, многоадресная DNS, NSD или SSDP), если вам нужно избегать ввода IP-адресов с одной стороны.
Один из способов сделать это состоит в том, чтобы настроить приложение для ПК для связи с устройством Android в качестве аксессуара для Android. http://developer.android.com/guide/topics/connectivity/usb/accessory.html
Это позволит обоим приложениям отправлять любые данные по USB, и Google предоставляет исходный код для этого с помощью комплекта для разработки аксессуаров. http://developer.android.com/tools/adk/index.html
У меня нет примера исходного кода, но там может быть какой-то там, если вы ищете.
Вы можете использовать ADB и вызывать пользовательские команды на вашем устройстве Android. Эта команда должна просто ввести целые числа в стандартный вывод. Как вариант, вы можете использовать стандартные команды оболочки, такие как cat
и заставьте ваше Android-приложение записывать выходные целые числа в файлы в некотором каталоге, где ADB сможет их прочитать.
Android может работать как USB-устройство с интерфейсом USB CDC (ACM), который рассматривается как последовательный порт на ПК (COMx в Windows, / dev / ttyXXX в Linux). На стороне C ++ (ПК) это была бы «обычная» обработка последовательного порта, в то время как на Android есть несколько библиотек для таких целей, хотя я никогда не использовал одну, поэтому не могу рекомендовать ни одну.