2015-09-25 2 views
1

В Java мы можем получить выделенный текст из собственного окна с помощью JNA или JNI. Например, мы могли бы использовать Monitor text that is highlightedКак отслеживать выделенный текст (или выделенный текст) из других открытых APP в Android

Есть ли способ сделать то же самое с помощью Android SDK ??

ответ

3

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

В противном случае это невозможно для обеспечения конфиденциальности и безопасности.

+0

означает, что нет законного способа получить выделенный текст? –

+0

@HamreenAhmad: API-интерфейсы доступности, безусловно, являются «законными». Они просто очень страшны, поэтому пользователи могут отказаться от использования вашего приложения. – CommonsWare

+0

Что касается рамки доступности, это правда, но если я не ошибаюсь, он должен только слушать приложения, которые запрограммированы как «доступные», популярными приложениями могут быть такие. Оформить заказ https://developer.android.com/training/accessibility/service.html – Jorch914

0

Использование исключительно SDK без использования уязвимости безопасности невозможно. Существует простое объяснение того, почему это невозможно.

Первая причина заключается в том, как приложения Android выполняются в ОС изолированным способом, используя группы пользователей и систему разрешений Linux. Каждый выполняемый процесс и приложение на Android имеют собственный пользователь и группу, а также разрешения на доступ к этим ресурсам. Таким образом, они не могут общаться с другими приложениями (или фиксировать то, что пользователь на данный момент является highlithing). Единственный способ для приложения общаться с другим - использовать связующий IPC, который должен сначала пройти через менеджера активности. Обратите внимание, что это уровень защиты, унаследованный от Linux ниже обычной системы разрешений Android.

Добавляем к этому, начиная с Android 5 (леденец), добавляем к этому накладываем теперь наложенные политики selinux, которые не позволяют домену приложения обращаться к другим доменам, которые обрабатывают графику, медиарезервуар и некоторые другие, я не буду вводить больше в этом разделе из-за его сложности и актуальности для вопроса, просто знайте, что это некоторые очень безопасные механизмы, которые предотвращают действия, которые могут означать нарушение безопасности.

Возможно ли это? Да, однако, это связано с использованием уязвимости, но это еще одна тема, и для этого я рекомендую искать в Интернете статьи, в которых рассказывается об уязвимостях в android.

+0

означает, что нет законного способа получить выделенный текст? –

+0

Нет, это скорее нарушение безопасности для пользовательских сборок. Это возможно на корневых сборках, поскольку вы можете подавить все эти уровни безопасности. Но это было бы более уязвимым и легким в эксплуатации устройством. – Jorch914

Смежные вопросы