所以在我的应用程序中,我正在保存一张照片,然后它出现在手机的图库中。我认为它看起来很快,但它不是即时的,因此我得到了不好的评论。我已经看到了应用程序,它们立即出现在画廊中,我希望我的同样可以避免更糟糕的评论。我正在使用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;
}
答案 0 :(得分:1)
我在这里错了。 sendBroadcast()
Intent.ACTION_MEDIA_MOUNTED
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(mediaFile)));
非常征税,可能导致延误。
您可以尝试使用以下内容:
mediaFile
我正在使用您在sendBroadcast()
方法上方创建的{{1}}。这应该更好,因为你只关注一个文件。