Android: программная очистка буфера обмена с пустыми ClipData не удаляет текст из панели предложений или истории Gboard.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android: программная очистка буфера обмена с пустыми ClipData не удаляет текст из панели предложений или истории Gboard.

Сообщение Anonymous »

Я реализую функцию безопасности в своем приложении для Android, позволяющую удалять конфиденциальные данные из системного буфера обмена после определенных операций. Однако когда я устанавливаю пустой ClipData для очистки ранее скопированного текста, сторонние приложения для клавиатуры (в частности, Gboard) продолжают отображать исходный конфиденциальный текст в своей панели предложений и истории буфера обмена.
Проблема: Когда я вызываю код для очистки буфера обмена, Gboard не удаляет ранее скопированный текст из своей «панели предложений» или своей внутренней истории менеджера буфера обмена. Вместо этого действие «очистить» рассматривается как новое событие, в результате чего:
  • Исходный секретный текст остается в кэше истории клавиатуры.
  • Новый «пустой» или «пустой» клип появляется как самый последний элемент в пользовательском интерфейсе клавиатуры.
Это означает, что пользователь по-прежнему может видеть и коснитесь предыдущих конфиденциальных данных из собственного интерфейса клавиатуры, даже если приложение «очистило» системный буфер обмена.
Текущая реализация:

Код: Выделить всё

val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager

val emptyClipData = ClipData.newPlainText("", "")
clipboardManager.setPrimaryClip(emptyClipData)

Наблюдаемое поведение:
  • Исходный текст сохраняется: ранее скопированный конфиденциальный текст остается видимым на панели подсказок/предсказаний Gboard.
  • Добавлен новый пустой клип: вместо замены предыдущей записи менеджер буфера обмена Android создает новый пустой клип как самый последний элемент.
  • История не очищена: исходный текст продолжает появляться в истории буфера обмена Gboard.
Ожидаемое поведение
Буфер обмена должен быть полностью очищен, а конфиденциальный текст больше не должен быть доступен через:
  • Предложение Gboard bar
  • История буфера обмена Gboard
  • Любые API доступа к буферу обмена
Вопрос
Есть ли способ запретить сторонним клавиатурам кэшировать данные буфера обмена?

Подробнее здесь: https://stackoverflow.com/questions/798 ... snt-remove
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»