android - 隐藏文件

时间:2013-04-15 08:46:40

标签: java android

我在使用Eclipse开发的Android应用程序时遇到了麻烦。

问题在于,当我使用以下说明捕获新图像时:

intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, TAKE_IMAGE);

设备正确地将文件存储在右侧destination(extSdCard)中,但是在重新启动设备之前,以下代码应该重新加载目录内容,但是找不到新文件。

   images.clear();
   final String[] columns = { MediaStore.Images.Thumbnails._ID };
   final String orderBy = MediaStore.Images.Media._ID;
   String condition = MediaStore.Images.Media.DATA + " like '%/"+
   Singleton.getCurrentPatient().getNrdo()+"/%'";

   Cursor imagecursor =  getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns,
                condition, null, orderBy);

    if(imagecursor != null){
     int image_column_index = imagecursor
                    .getColumnIndex(MediaStore.Images.Media._ID);
     int count = imagecursor.getCount();
     for (int i = 0; i < count; i++) {
                imagecursor.moveToPosition(i);
           int id = imagecursor.getInt(image_column_index);
           ImageItem imageItem = new ImageItem();
          imageItem.id = id;
          lastId = id;
          imageItem.img = MediaStore.Images.Thumbnails.getThumbnail(
                        getApplicationContext().getContentResolver(), id,
                        MediaStore.Images.Thumbnails.MICRO_KIND, null);
         images.add(imageItem);
     }
       imagecursor.close();
     }
    notifyDataSetChanged();
}

有什么想法吗?我们必须提交刷新一些缓存吗?

1 个答案:

答案 0 :(得分:3)

您可以使用MediaScannerConnection向系统通知新媒体文件。 MediaScanner也作为启动顺序的一部分运行,这就是为什么您在重启后会看到MediaStore中出现的文件的原因。