MediaStore.MediaColumns.IS_FAVORITE 不可用

问题描述 投票:0回答:1

Android 11 以上。我无法从 contentProvider 获取此列的有效值,有人有信息吗?以下是我的代码:

private static final String[] PROJECTION_30 = {
            MediaStore.Files.FileColumns._ID,
            MediaStore.MediaColumns.DATA,
            MediaStore.MediaColumns.DISPLAY_NAME,
            MediaStore.MediaColumns.MIME_TYPE,
            MediaStore.MediaColumns.SIZE,
            MediaStore.MediaColumns.WIDTH,
            MediaStore.MediaColumns.HEIGHT,
            MediaStore.MediaColumns.IS_FAVORITE};

CursorLoader(context, MediaStore.Files.getContentUri("external_primary"), PROJECTION_30, selection, selectionArgs, null);

fun fromCursor(cursor: Cursor): MediaModel {
    try {
                val id = cursor.getLong(cursor.getColumnIndex(MediaStore.Files.FileColumns._ID))
                val mimeType = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.MIME_TYPE))
                val size = cursor.getLong(cursor.getColumnIndex(MediaStore.MediaColumns.SIZE))
                val width = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns.WIDTH))
                val height = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns.HEIGHT))
                val favorite = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
                    val index = cursor.getColumnIndex(MediaStore.MediaColumns.IS_FAVORITE)
                    if (index >= 0) {
                        cursor.getInt(index)
                    } else {
                        0
                    }
                } else {
                    0
                }
            }
        }

但是,最喜欢的结果是客场 0

我希望我能从 MediaStore 获得真正喜欢的价值

android mediastore
1个回答
0
投票

我认为这取决于制造商。我无法在 Oppo、小米等设备中获取最喜爱的媒体,但我可以在三星中获取最喜爱的媒体。我猜对于中国制造商的设备,他们使用数据库而不是 MediaStore 来管理收藏夹。

© www.soinside.com 2019 - 2024. All rights reserved.