Добавление дополнительных параметров в контекстную панель действий Android по умолчанию

Можно ли добавить дополнительные параметры в контекстную панель действий Android по умолчанию, я имею в виду не только изменение ее в одном приложении, но и изменение всех CAB во всей системе. Если это невозможно, есть ли другой способ написать приложение, которое реагирует, когда я выбираю текст в разных приложениях (например, в браузере, Gmail и т. д.), и делает его, например, всплывающим сбоку.

Я не ожидаю никакого кода, только общий подход и некоторые подсказки, как добиться подобного поведения.


person radzak    schedule 30.05.2016    source источник


Ответы (1)


Можно ли добавить дополнительные параметры в контекстную панель действий Android по умолчанию, я имею в виду не только изменение ее в одном приложении, но и изменение всех CAB во всей системе.

Вообще нет "контекстной панели действий по умолчанию". Некоторые виджеты могут иметь контекстную панель действий по умолчанию (также известную как режим действий).

Учитывая часть остальной части вашего вопроса, я предполагаю, что под «контекстной панелью действий по умолчанию» вы имеете в виду виджет EditText (или что-либо еще, основанное на TextView, которое позволяет выбирать текст).

В этом случае на Android 6.0 и выше вы может реализовать действие ACTION_PROCESS_TEXT, которое будет интегрировано в качестве опции в режим плавающего действия выделения текста. Обратите внимание, что этот режим действий доступен только в портретном режиме, поэтому ваша активность не будет отображаться в альбомной ориентации.

Для Android 5.1 и более ранних версий аналогичной опции нет.

есть ли другой способ написать приложение, которое реагирует, когда я выбираю текст в разных приложениях?

Возможно, вы сможете добиться этого, написав файл AccessibilityService. Обратите внимание, что пользователь должен выбрать включение вашего AccessibilityService в приложении «Настройки», что предупредит пользователя о последствиях для конфиденциальности, связанных с разрешением вашему приложению следить за всеми его входными данными.

person CommonsWare    schedule 30.05.2016
comment
Большое спасибо за ваш ответ! Должен ли пользователь разрешать ACTION_PROCESS_TEXT действие? Какой из этих двух подходов вы бы использовали с точки зрения совместимости и конфиденциальности пользователей? Я предполагаю, что ACTION_PROCESS_TEXT не следит за всеми входными данными. Извините, но я действительно новичок во всех этих вещах, но я хотел бы знать, какой из этих механизмов лучше использовать в моем случае, когда визуальная сторона не имеет значения. - person radzak; 30.05.2016
comment
@Jatimir: Должен ли пользователь разрешать действие ACTION_PROCESS_TEXT? -- нет, если только Android не изменил это поведение, и я это пропустил. Какой из этих двух подходов вы бы использовали с точки зрения совместимости и конфиденциальности пользователей? -- ACTION_PROCESS_TEXT. Я предполагаю, что ACTION_PROCESS_TEXT не следит за всеми входными данными - правильно. Пользователь должен специально коснуться вашей записи в режиме плавающего действия, и поэтому он более или менее соглашается в этот момент. - person CommonsWare; 30.05.2016