USB文件夹访问时不显示图像和文件夹

时间:2015-05-13 11:42:21

标签: google-glass google-gdk android-file

我试图制作照片并将其存储在设备上。

对于路径,我使用此:

File mediaStorageDir = new File(Environment.getExternalStorageDirectory() + File.separator + "DCIM", "nameFolder");

我存储的每个图像的路径,路径是这样的:

  

/storage/emulated/0/DCIM/nameFolder/IMG_20150513_125555.jpg

好的,似乎工作正常。

但是,当我尝试通过USB查看照片时,没有新文件夹

但是,如果我通过DDMS加入,我可以在此路径中找到文件夹和图像:

  

MNT /壳/ emulated0 / DCIM / nameFolder

有什么问题?

2 个答案:

答案 0 :(得分:0)

您没有告诉设备您是否创建了新文件,因此您需要使用媒体扫描程序,以便它可以更新设备上的文件列表。尝试创建一个如下所示的新类:

int

然后在创建文件后,只需执行以下操作:

public class SingleMediaScanner implements MediaScannerConnection.MediaScannerConnectionClient
{
    private MediaScannerConnection mMediaScanner;
    private File mFile;

    public SingleMediaScanner(Context context, File file)
    {
        mFile= file;
        mMediaScanner = new MediaScannerConnection(context, this);
        mMediaScanner.connect();
    }

    @Override
    public void onMediaScannerConnected()
    {
        mMediaScanner.scanFile(mFile.getAbsolutePath(), null);
    }

    @Override
    public void onScanCompleted(String path, Uri uri)
    {
        mMediaScanner.disconnect();
    }

}

这应该让设备知道有一个新的图像,它现在应该显示在usb连接中。

答案 1 :(得分:0)

除了w9jds的回答,您还可以发送广播,让系统知道您创建了新的媒体文件。

对于特定文件:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imageAdded)));

或扫描整个外部存储空间:

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

另见:

Scan Android SD card for new files

How can I refresh MediaStore on Android?