#android #clipboard #clipboarddata
#Android #буфер обмена #clipboarddata
Вопрос:
Мне нужно хранить данные, скопированные из приложения, в памяти другого приложения, а не позволять Android сохранять их в глобальном буфере обмена.
Возможно ли скопировать данные в отдельную память, отличную от глобального буфера обмена.
Любая помощь будет оценена.
Спасибо, Nibs
Ответ №1:
Вы можете использовать класс ClipboardManager для получения данных буфера обмена и сохранения их (возможно, в файл?) к которым может получить доступ другое приложение. Пример см. в разделе Копирование и вставка.
Комментарии:
1. да, @umair, очевидно, что я буду использовать ClipboardManager, но как мне избежать сохранения его в глобальном буфере обмена и как я буду сохранять его в памяти другого приложения?
2. Если вы сохраните данные, скопированные из буфера обмена, с меткой времени, вы можете заставить другое приложение открыть файл и посмотреть, отличается ли метка времени от той, которую оно сохранило ранее. Если он отличается, вы можете выполнить нужное действие с новыми данными. Вы также хотите явно остановить отправку данных в глобальный буфер обмена?
3. Временная метка в моем случае не будет работать. Я не вижу решения своей проблемы. Да, мне нужно явно запретить размещение данных в глобальном буфере обмена.
4. Еще одна идея: внедрите фоновый прослушиватель во втором приложении, который прослушивает клип с определенным тегом, который вы установили в первом приложении, используя OnPrimaryClipChangeListener(), getPrimaryClipDescription() и getPrimaryClip() . Когда это совпадение, вы можете сохранить его в локальной переменной во втором приложении. Пользователи копируют недостаточно часто, чтобы эта небольшая проверка была тяжелой. Возможно, вы можете сбросить буфер обмена в пустую строку, используя OnPrimaryClipChangedListener() в первом приложении; получите его описание и отправьте другой элемент в буфер обмена с тем же описанием, но пустым содержимым.