Android 从MediaStore.Audio.Media中选择多首歌曲id

Android 从MediaStore.Audio.Media中选择多首歌曲id,android,android-mediaplayer,Android,Android Mediaplayer,我使用以下命令创建了一个getContentResolver.query uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; String projection[] = { android.provider.MediaStore.Audio.Media.DATA, android.provider.MediaStore.Audio.Media.TI

我使用以下命令创建了一个getContentResolver.query

 uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
            String projection[] = { android.provider.MediaStore.Audio.Media.DATA,
                    android.provider.MediaStore.Audio.Media.TITLE,
                    android.provider.MediaStore.Audio.Media.ARTIST,
                    android.provider.MediaStore.Audio.Media.ALBUM,
                    android.provider.MediaStore.Audio.Media.COMPOSER,
                    android.provider.MediaStore.Audio.Media.DURATION,
                    MediaStore.Audio.Media._ID,
                    android.provider.MediaStore.Audio.Media.ALBUM_ID };
                    String selection1 = MediaStore.Audio.Media._ID + "=?" ;
                    String[] selectionArgs = new String[] {"" + 19};
                    cursor = this.getContentResolver().query(uri, projection,
                    selection1, selectionArgs, null);
                    songs = new ArrayList<String>();
                    while (cursor.moveToNext()) { 
                    songs.add(cursor.getString(1)); 
此查询失败

有没有合适的方法来选择多首歌曲,上面的查询有什么问题。
请解释需要进行的更改。

我认为您使用IN运算符进行查询没有任何错误。我怀疑IN的查询有其特殊性和局限性。然而,我没有使用它。尝试只使用OR运算符。 例如:

当然,不要使用selectionArgs作为参数。

另一个好的尝试是使用原始查询,即文档@。对于原始查询,您可以使用IN运算符,我认为这是简化查询的一个好主意。下次我应该用它


谢谢你的提问

在加入之前,请先多加一点空间,非常感谢@pskinkhow我们可以从一个特定id中选择多首歌曲吗?我已经使用SelectionAgs作为android.provider.MediaStore.Audio.Albums从一个专辑id中选择了所有歌曲。\u id,现在,正如上面的代码,我们如何在SelectionAgs中同时使用歌曲的多个id和唱片集id?我们不知道您在说什么相同的:MediaStore.Audio.Media.\u id对您所有的歌曲都是唯一的,换句话说,MediaStore.Audio.Media表中不能有两个相同的\u id
String selection1 = MediaStore.Audio.Media._ID + "IN(?,?)";
String[] selectionArgs = new String[] {"" + 12,"" + 19};
String selection1 = MediaStore.Audio.Media._ID + "=12" + " OR " + MediaStore.Audio.Media._ID + "=19";