Время последнего изменения файла из URI Android, предоставленного Intent.ACTION_OPEN_DOCUMENT. ⇐ Android
-
Гость
Время последнего изменения файла из URI Android, предоставленного Intent.ACTION_OPEN_DOCUMENT.
Мне нужно написать приложение для Android, которое отслеживает изменение файла другим приложением, а затем считывает из него данные. Файл выбирает пользователь. Поэтому я хочу использовать Intent и любой инструмент выбора файла, доступный на устройстве, чтобы пользователь мог выбрать файл.
При использовании Intent.ACTION_OPEN_DOCUMENT возвращается URI. Я могу открыть InputStream и прочитать файл в экземпляр File, а затем проверить дату последнего изменения. Однако копирование содержимого файла в экземпляр File каждые 5 секунд или около того только для проверки того, было ли оно изменено, кажется расточительным с точки зрения ресурсов. Очевидно, я не могу использовать экземпляр File с данными, скопированными один раз из потока, чтобы постоянно проверять время последнего изменения, мне придется копировать его каждый раз.
Есть ли способ получить время последнего изменения с помощью URI? Или получить фактический файл/абсолютный путь с помощью Intent? Я нашел несколько очень сложных способов получить абсолютный путь из URI, но они кажутся слишком сложными, и я не нашел ничего, что хотел бы использовать, и уверен, что это будет работать на разных версиях Android. Есть ли другое решение?
Мне нужно написать приложение для Android, которое отслеживает изменение файла другим приложением, а затем считывает из него данные. Файл выбирает пользователь. Поэтому я хочу использовать Intent и любой инструмент выбора файла, доступный на устройстве, чтобы пользователь мог выбрать файл.
При использовании Intent.ACTION_OPEN_DOCUMENT возвращается URI. Я могу открыть InputStream и прочитать файл в экземпляр File, а затем проверить дату последнего изменения. Однако копирование содержимого файла в экземпляр File каждые 5 секунд или около того только для проверки того, было ли оно изменено, кажется расточительным с точки зрения ресурсов. Очевидно, я не могу использовать экземпляр File с данными, скопированными один раз из потока, чтобы постоянно проверять время последнего изменения, мне придется копировать его каждый раз.
Есть ли способ получить время последнего изменения с помощью URI? Или получить фактический файл/абсолютный путь с помощью Intent? Я нашел несколько очень сложных способов получить абсолютный путь из URI, но они кажутся слишком сложными, и я не нашел ничего, что хотел бы использовать, и уверен, что это будет работать на разных версиях Android. Есть ли другое решение?
Мобильная версия