Проблема с обновлением файла, принадлежащего MediaStoreAndroid

Форум для тех, кто программирует под Android
Anonymous
Проблема с обновлением файла, принадлежащего MediaStore

Сообщение Anonymous »

На некоторых из файлов MP3 на моем устройстве (которое в настоящее время является эмулятором) я хочу изменить их данные ID3. Общий подход, который я использую:
  • Скопировать файл в папке музыки (/storage/emulate/0/music/), чтобы
    папка кэша приложения (/data/user/0/com.example.music/cache/)
  • Внеси /> Установите поле URI is_pending на 1
  • Поймайте восстановляемый DecurityException и отобразить диалог
  • the Poller Cache
    (Br /> comase/caxple. />(/storage/emulated/0/Music/)
  • set the URI's IS_PENDING field to 0
  • let MediaStore that a file has changed using MediaScannerConnection.scanFile()
This approach works as expected the В первый раз разрешается разрешение для URI. Однако, поскольку это разрешение длится предположительно до выхода приложения, в следующий раз, когда я пытаюсь внести изменения в тот же файл (то есть в тот же URI), установив URI is_pending на 1 на самом деле переименовать файл, а затем и другие, а затем и другие, а затем и другие, а затем и другие, а затем и другие, а затем и другие, а затем и другие, а затем и другие, а затем и другие. < /p>
OutputStream os = resolver.openOutputStream(audioUri);
< /code>
Не удается с: < /p>
java.lang.IllegalStateException
Only owner is able to interact with pending item content://media/external/audio/media/160
< /code>
Таким образом, в то время как сам URI не изменился с первого обновления, файл, который он разрешает. Я проверил владельца URI, и каждый раз он одинаково: Media . Я пробовал так много вещей, чтобы обойти это, но все они не могут работать. Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/797 ... mediastore

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