Android ContentResolver 在我的设备上找不到音乐

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

当我使用原始的 Google 音乐播放器时,我的应用程序运行良好。它找到了歌曲和播放列表,没问题。自从我开始使用 Play Music 以来,我的应用程序找不到任何这些内容。这是我的代码:

    Cursor cursor = contentResolver.query(uri, null, MediaStore.Audio.Media.IS_MUSIC + " = 1", null, null);

    if (cursor == null || !cursor.moveToFirst()) {
        Log.e(TAG, "Could not locate any music on device.");
        return;
    }

    cursor.close();

知道为什么会发生这种情况。我刚刚收到第一个投诉,购买我的应用程序的人无法播放音乐。

android android-contentresolver playlists
2个回答
3
投票

也许已经晚了,但我做了这样的事情:

String[] projection = {
            MediaStore.Audio.Media._ID,
            MediaStore.Audio.Media.ARTIST,
            MediaStore.Audio.Media.TITLE,
            MediaStore.Audio.Media.DATA,
            MediaStore.Audio.Media.DISPLAY_NAME,
            MediaStore.Audio.Media.ALBUM_ID,
            MediaStore.Audio.Media.DURATION
    };
    String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
    Cursor cursor = context.getContentResolver().query(
            MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
            projection,
            selection,
            null,
            null);

0
投票

也许,您需要请求音频许可。

在您的应用程序清单中:

    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />

然后获取音频。

    val locationPermissionRequest =
        registerForActivityResult<String, Boolean>(
            ActivityResultContracts.RequestPermission(),
            ActivityResultCallback<Boolean> {
                if (it) {
// get audio
                    getMusic()
                }
            }
        )
// request permission
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            if (ActivityCompat.checkSelfPermission(
                    this@MainActivity,
                    Manifest.permission.READ_MEDIA_AUDIO
                ) != PackageManager.PERMISSION_GRANTED
            ) {
                locationPermissionRequest.launch(Manifest.permission.READ_MEDIA_AUDIO)
                return
            }
        }

https://developer.android.com/training/data-storage/shared/media#media-location-permission

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