2011-12-21 3 views
5

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

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

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

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

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

Благодарим за помощь.

G.

+0

Вы имеете в виду, что устройство подключено к USB? Если да, то это может быть предполагаемое поведение. –

+0

К сожалению нет. Даже когда устройство отключено, после этого я могу увидеть удаленные записи в Windows 7 File Explorer. – Georges

+1

Я нашел элемент ответа. sendBroadcast (новое намерение (Intent.ACTION_MEDIA_MOUNTED, Uri.parse ("file: //" + Environment.getExternalStorageDirectory()))); Выполнение этого после удаления файла, похоже, работает, когда устройство не подключено через USB. – Georges

ответ

10

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

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

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

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

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

+0

Поздравляем с решением. Когда вы в состоянии, пожалуйста, отметьте, что вы отвечаете как «принятый», чтобы другие могли узнать о вашем успехе. Cheers ~ –

+0

Спасибо, я обновлю, как только задержка истекла – Georges

+0

Я создаю pdf-файлы, и мне всегда приходилось отключать и перезаписывать USB-файлы, чтобы увидеть мои изменения ... – stefan