Android Studio : How to refresh android Gallery after save image to folder

เคยประสบปัญหาบ้างหรือไม่ว่า เวลาเซฟรูปจากแอปปลิเคชันแล้ว รูปที่เซฟไม่แสดงใน anroid gallery app ทันที แต่ถ้าค้นหารูปที่เซฟโดยการเปิดจาก “ไฟล์ส่วนตัว (Folder Manager)” แล้วไล่ดูจากโฟลเดอร์จะพบว่ามีไฟล์รูปภาพที่เราเซฟไว้แล้ว แต่ทว่าไม่เห็นใน android gallery ทันที

นั่นเพราะว่า android gallery ยังไม่ได้สแกนโฟลเดอร์ใหม่ที่มีการเพิ่มรูปเข้ามานั่นเอง เพราะฉะนั้นก็จะต้องรอเวลาที่ android gallery scan folder รูปภาพใหม่ๆก็จะไปแสดงใน android gallery ได้เอง

คำถาม : แล้วเรามีวิธีการทำให้เห็นใน android gallery ทันทีเลยหรือเปล่า เพราะบางแอปปลเคชันพอเซฟรูปก็ขึ้นใน android gallery ทันที

คำตอบ : มีวิธีสั่งให้ refresh android gallery เพื่อค้นหารูปภาพที่เพิ่งเซฟลงไป โดยเพิ่มโค้ดนี้เข้าไปหลังจากการเซฟ

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File f = new File(“file://”+ Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES));
Uri contentUri = Uri.fromFile(f);
mediaScanIntent.setData(contentUri);
this.sendBroadcast(mediaScanIntent);
}
else
{
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse(“file://” + Environment.getExternalStorageDirectory())));
}

หรืออาจใช้วิธีการสแกนไฟล์ที่เพิ่งเซฟลงเครื่องได้ โดยโค้ดที่เรียกใช้มีดังนี้

context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)));

คราวนี้ลองรันแล้วทดสอบการเซฟรูปดูใหม่ว่าจะเห็นรูปขึ้นมาใน android gallery เลยมั้ย

You may also like...