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()Intent.ACTION_MEDIA_MOUNTEDは非常に負担が大きく、問題の遅延を引き起こしている可能性があります。

代わりに以下を使用してみてください。

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

mediaFileメソッドのすぐ上に作成したものを使用していますsendBroadcast()。1 つのファイルだけに焦点を合わせているので、これはより良いはずです。

于 2013-07-20T13:39:56.030 に答える