Файлы SD-карты, обновленные программно, не обновляются в проводнике Windows - PullRequest
5 голосов
/ 21 декабря 2011

Мое приложение выполняет файловые операции на SD-карте (удаление или обновление файла). Но когда я подключаю устройство к Windows 7 через USB, я не вижу никаких изменений. Однако я могу подтвердить файлы, которые были обновлены или удалены с помощью оболочки adb.

Я использую ASUS Eee Pad с Android 3.0.

Кажется, что устройства под управлением Android 3.0 имеют другой способ предоставления доступа к файловой системе (MTP вместо USB Mass Storage). Я также читал о том, как мы можем использовать MediaScannerConnection.scanFile для обновления содержимого проводника Windows при добавлении нового файла.

Но как вызвать обновление, когда файлы удалены или обновлены?

Я попытался MediaScannerConnection.scanFile на удаленном файле, но он создает только запись с размером 0. MediaScannerConnection.scanFile на всю папку тоже не работает.

Спасибо за вашу помощь.

G.

1 Ответ

10 голосов
/ 22 декабря 2011

Итак, как уже упоминалось в комментарии ранее. На данный момент лучшее, что я нашел, это

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));

После удаления или обновления файла, похоже, работает.

Однако устройство должно быть отключено от USB. В противном случае вам необходимо отключить и снова подключить устройство, чтобы увидеть изменения.

Примечание: На некоторых устройствах это может вызвать событие onResume для текущей активности.

...