Подключитесь к RS232 из Android - Нет прав доступа или команды оболочки

Задача

Я разрабатываю специальное приложение для внутреннего использования на мини-ПК с Android. Цель (между другими... так... многими... другими...) состоит в том, чтобы иметь возможность включать и выключать телевизор, используя последовательный порт на телевизоре. Я использую для этого последовательный USB-кабель FTDI UART RS232.

Статус

Приложение работает прямо сейчас, используя библиотеку Android ( серийный драйвер), я могу общаться с телевизором, но проблема в том, что устройство запрашивает разрешения при каждой установке (а иногда, как ни странно, снова на том же устройстве), поэтому нуждается в улучшении.

вопрос

Поскольку устройство не имеет мыши или клавиатуры по умолчанию, когда это происходит, кто-то должен нажимать на кнопки, и, поскольку устройство обычно скрыто за экраном, это может сильно раздражать.

Мои два бита

Эта проблема, я чувствую, может быть решена двумя способами, но я до сих пор не смог заставить их работать.

  1. Поскольку устройство рутировано, я мог бы изменить неизвестный (для меня) параметр, который позволяет мне обойти запрос на разрешение. Для этого я попытался сделать фильтр намерений для USB-устройства и переписать интерфейс, который управляет этим поведением, оба безуспешно. Есть ли способ сделать эту версию для Android более снисходительной в отношении разрешений?
  2. Я использую SuperSU по другим причинам внутри приложения, поэтому я могу использовать всю ширину мощной оболочки. Используя это, я пытался отправить команды вручную на устройство (/dev/bus/usb/00X/00Y), но это не сработало. Моя теория состоит в том, что это из-за разрешений пути устройства, но даже если я делаю нездоровый chmod 777, я не могу заставить их работать.

Итак, это моя проблема прямо сейчас. Я надеюсь, что кто-то здесь может мне помочь.

Дополнительная информация

  • Запуск: пользовательский Android 4.4.2 (не может быть изменен)
  • Должен быть выполнимым исключительно из apk (но он может использовать команды оболочки)
  • У нас нет подписи производителя, чтобы установить его как системное приложение
  • Мы можем использовать только одно приложение, поэтому у меня не может быть другого, чтобы переместить его в /sys/apps, и я не знаю, может ли приложение сделать это для себя.
  • использование Busybox stty -F /dev/.../ возвращает "Операция не разрешена"

0 ответов

Другие вопросы по тегам