我制作了一个应用程序,它具有文件共享功能之一,并且发送的文件可能是任何内容。但是,使用com.androidquery.AQuery下载,发送的图像和视频未显示在默认的Gallery应用程序中。是否有一个我错过的步骤,将文件标记为媒体或类似的东西?因为我认为你只需要将文件标记为Android上的非媒体,当你真的不希望它们显示时。
答案 0 :(得分:2)
文件下载后,您需要执行
private void addImageGallery(File file) {
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA, file.getAbsolutePath());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
}
在android MediaStore中注册您的文件,其中gallery获取有关存储的媒体文件的数据
答案 1 :(得分:1)
经过一些基于Sone答案的研究后,我得到了下载后需要插入的代码:
Uri uri = Uri.fromFile(new File(downloadFilePath)); //Insert your file path here
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
mediaScanIntent.setData(uri);
getApplicationContext().sendBroadcast(mediaScanIntent);
正如他所说,我需要在android MediaStore中注册我的文件,无论通过强制扫描程序查看最近下载的文件来下载什么类型的媒体,此代码都会这样做。希望它可以帮助其他需要这个的人。