cursor.moveToFirst永远不会返回true

时间:2013-07-31 15:21:43

标签: java android sqlite

我正在尝试搜索MediaStore,到目前为止,我没有运气这样做。

以下是我目前的代码:

    Cursor cursor = this.managedQuery(uri, 
                    null, 
                    MediaStore.Audio.Media.TITLE + "=?", 
                    new String[]{songToPlay}, 
                    MediaStore.Audio.Media.TITLE + " ASC"); 

            if(cursor.moveToFirst()){
                do{  String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
                long id = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID));

                 test.setText(path);
                }
            while (cursor.moveToNext());

            }

songToPlay,uri都设置正确。

永远不会执行if语句。

是什么导致这种情况?

1 个答案:

答案 0 :(得分:0)

这可能意味着the cursor is empty。试用cursor.getCount(),然后仔细检查您的查询是否正确。您确定媒体商店已填充吗?你有权访问它吗?

顺便说一下,您似乎正在构建搜索功能。如果是这样,请确保使用LIKE运算符,或者更好的是use full text search