Я работаю над побочным проектом, в котором мне нужно постоянно получать доступ к буферу обмена на устройстве Android и изменять его. Я изучал, как такие приложения, как KDE Connect, могут эффективно отслеживать изменения в буфере обмена. Насколько я понимаю, KDE Connect использует постоянный канал уведомлений, чтобы поддерживать работу службы переднего плана, позволяя ей взаимодействовать с буфером обмена, даже когда приложение не в фокусе.
Как новичку, который много лет не углублялся в разработку Android, мне сложно реализовать это. функционал с нуля. В частности, я хочу понять:
- Создание постоянного канала уведомлений:
Как настроить создать постоянный канал уведомлений, чтобы гарантировать, что моя служба не будет отключена системой.
Рекомендации по настройке уведомлений для соответствия современным версиям Android (особенно Android 8.0 и более поздних версий, которые обеспечивают принудительное использование каналов уведомлений). - Доступ к буферу обмена и его изменение:
Как эффективно отслеживать изменения в буфере обмена с помощью службы переднего плана.
/>Методы программного изменения содержимого буфера обмена с соблюдением правил безопасности и конфиденциальности Android. - Использование каналов журнала или альтернатив:
KDE Connect упоминает использование «канала журнала» для определенных функций. Как это работает и применимо ли это для доступа к буферу обмена?
Существуют ли альтернативные подходы для достижения аналогичных результатов без использования каналов журналов?
Что я пробовал: - Служба переднего плана с уведомлением: Я попытался создать службу переднего плана с постоянным уведомлением, следуя стандартной документации Android. Однако служба, похоже, не поддерживает свое состояние так надежно, как KDE Connect.
- Прослушиватель ClipboardManager: Реализован ClipboardManager.OnPrimaryClipChangedListener, но он обнаруживает изменения только тогда, когда приложение находится на переднем плане.
- Разрешения: Добавлено необходимые разрешения, такие как FOREGROUND_SERVICE и POST_NOTIFICATIONS, но я не уверен, нужны ли дополнительные разрешения или настройки для постоянного доступа к буферу обмена.
- Как создать надежный постоянный канал уведомлений в Android, который обеспечит работу службы мониторинга буфера обмена остается активным в фоновом режиме?
- Каковы наилучшие методы доступа и изменения буфера обмена в фоновой службе без ущерба для конфиденциальности пользователя или возникновения проблемы с разрешениями?
- Может ли кто-нибудь объяснить, как KDE Connect использует канал журнала для доступа к буферу обмена, и существует ли современный эквивалентный подход, который мне следует рассмотреть?
Целевая версия Android:
Дополнительная информация:
Целевая версия Android: Я ориентируюсь на Android 13 (уровень API 33) и выше.
Среда разработки: Android Studio с Kotlin.
Цель проекта: иметь фоновую службу, которая отслеживает изменения в буфере обмена и может при необходимости изменять его содержимое, аналогично функциям KDE Connect.
Любые рекомендации, фрагменты кода или ссылки на ресурсы, которые могут помочь мне в этом, будут очень признательны!
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/790 ... and-modify