Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中的存储器中查找mp3歌曲_Android_Android Studio_Mediastore - Fatal编程技术网

在android中的存储器中查找mp3歌曲

在android中的存储器中查找mp3歌曲,android,android-studio,mediastore,Android,Android Studio,Mediastore,我正在尝试制作一个应用程序来查找所有mp3歌曲,这段代码就是我得到的,但是我无法测试这段代码,因为它正在崩溃,没有任何错误,我做错了什么 我的班级要找到歌曲: public class SongsManager { private ArrayList<Song> songsList; public ArrayList<Song> getMp3Songs(Context ctx) { Uri allSongsUri = MediaSt

我正在尝试制作一个应用程序来查找所有mp3歌曲,这段代码就是我得到的,但是我无法测试这段代码,因为它正在崩溃,没有任何错误,我做错了什么

我的班级要找到歌曲:

   public class SongsManager {
    private ArrayList<Song> songsList;

    public ArrayList<Song> getMp3Songs(Context ctx) {
        Uri allSongsUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
        String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
        Cursor cursor =  ctx.getContentResolver().query(allSongsUri, null, null, null, selection);
        if (cursor != null) {
            if (cursor.moveToFirst()) {
                do {
                    Song song = new Song(cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media._ID)),
                            cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)),
                            cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)),
                            cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)));
                    songsList.add(song);
                } while (cursor.moveToNext());
            }
            cursor.close();
        }
        return songsList;
    }
}

您应用了错误的语法。“选择”不正确,因为这是排序顺序的所在

例如:

         private final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
         public Cursor getAllTracks(Context context) {
    // gets all tracks

    ContentResolver cr = context.getContentResolver();
    final String[] columns = {track_id, track_no, artist, track_name,
            album, duration, path, year, composer};
    return cr.query(uri, columns, null, null, null);
} 
从文件中:

    query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

查询给定的URI,在结果集上返回一个光标。

“因为正在崩溃”--使用LogCat检查与崩溃相关的Java堆栈跟踪:此处出现一些错误:Cursor Cursor=ctx.getContentResolver().Query(allSongsUri,null,null,null,selection);你帮了大忙!谢谢你,娜达,谢谢你
         private final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
         public Cursor getAllTracks(Context context) {
    // gets all tracks

    ContentResolver cr = context.getContentResolver();
    final String[] columns = {track_id, track_no, artist, track_name,
            album, duration, path, year, composer};
    return cr.query(uri, columns, null, null, null);
} 
    query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)