因此,在我的应用中,我保存了一张照片,然后该照片出现在手机的图库中。我认为它的显示速度很快,但不是即时的,因此我收到了不好的评价。我已经看到了应用程序在图库中立即出现的情况,并且我希望我也这样做,以避免更多不良评论。我正在使用sendBroadcast
,我认为这是最快的方法,但是我想我错了。
public File savePhoto(File pic,String ext)
{
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Pics");
// Create the storage directory if it does not exist
if (!mediaStorageDir.exists())
{
if (!mediaStorageDir.mkdirs()) return null;
}
// Create a media file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile=null;
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + "."+ext);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Pics"))));
Toast.makeText(this, "Image Saved", Toast.LENGTH_SHORT).show();
return mediaFile;
}
最佳答案
我在这里可能是错的。带有sendBroadcast()
的Intent.ACTION_MEDIA_MOUNTED
非常费力,可能会引起问题的延迟。
您可以尝试使用以下内容代替它:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(mediaFile)));
我使用的是您在
mediaFile
方法上方创建的sendBroadcast()
。这应该更好,因为您只关注一个文件。关于android - 保存的图像需要一段时间才能显示在图库中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17762758/