2

所以在我的应用程序中,我正在保存一张照片,然后它会出现在手机的图库中。我认为它看起来很快,但它不是即时的,因此我收到了不好的评论。我已经看到它们立即出现在图库中的应用程序,我希望我的应用程序也这样做以避免更多的差评。我正在使用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;
}
4

1 回答 1

1

我在这里可能是错的。sendBroadcast()withIntent.ACTION_MEDIA_MOUNTED非常费力,可能会导致有问题的延迟。

您可以尝试在其位置使用以下内容:

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

我正在使用mediaFile您在sendBroadcast()方法上方创建的。这应该会更好,因为您只关注一个文件。

于 2013-07-20T13:39:56.030 回答