簡體   English   中英

Android媒體提供程序未獲取最近添加的圖像

[英]Android media provider does not get recently added images

我想獲取android設備中的所有圖像。 因此,我使用此代碼來獲取圖像-

private fun getAllShownImagesPath(activity: Activity): ArrayList<String>
{
    val uri: Uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI
    val listOfAllImages = ArrayList<String>()
    var absolutePathOfImage : String

    val projection = arrayOf(MediaStore.MediaColumns.DATA, MediaStore.Images.Media.BUCKET_DISPLAY_NAME)
    val orderBy = MediaStore.Images.Media.DATE_ADDED
    val cursor = activity.contentResolver.query(uri, projection, null, null, orderBy)
    val indexData = cursor!!.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA)

    cursor.moveToLast()
    while (cursor.moveToPrevious())
    {
        absolutePathOfImage = cursor.getString(indexData)
        listOfAllImages.add(absolutePathOfImage)
    }
    cursor.close()

    return listOfAllImages
}

但這不會返回最近添加的圖像,就像您幾個小時前下載它一樣。 重新啟動設備或要訪問的映像已存在一天時,此問題已通過某種方式解決。 注意-您也可以使用Java提供解決方案。

謝謝

強制發送廣播,然后媒體光標將被更新。 在訪問媒體光標之前調用此

 sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM