2013-07-31 5 views
0

Я пытаюсь выполнить поиск в MediaStore, и до сих пор мне не повезло.cursor.moveToFirst никогда не возвращает true

Вот что мой текущий код выглядит следующим образом:

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, Ури все правильно.

инструкция if никогда не выполняется.

Что может быть причиной этого?

+0

Курсор, вероятно, пуст. Что такое uri, songToPlay и т. Д.? – Geobits

ответ

0

Это, вероятно, означает, что the cursor is empty. Попробуйте cursor.getCount() и проверьте правильность вашего запроса. Вы уверены, что медиа-магазин заполнен? У вас есть разрешения на доступ к нему?

Похоже, вы строите функциональность поиска, кстати. Если это так, обязательно используйте оператор LIKE или, еще лучше, use full text search.