2012-04-14 3 views
0

Я работаю над приложением MediaPlayer, где я использую MediaStore.Audio.Media, чтобы получить все песни на SD-карте и их теги названия, альбома, исполнителя и т. Д. У меня есть пользовательский адаптер, где я хочу проверить, пусто ли поле Artist, поэтому я могу установить «Artist unknown» для этого поля. Адаптер и используемый мной курсор, по моему мнению, не имеют отношения к этому вопросу, поэтому я не собираюсь вставлять код здесь, так как эта проблема возникает и вне адаптера.Как проверить поле MediaStore.Audio.Media.ARTIST пустым?

В этом случае проблема заключается в том, что когда в mp3-песне нет тега исполнителя, курсор для поля исполнителя (поле MediaStore.Audio.Media.ARTIST) возвращает «". Я понятия не имею, какой тип данных есть (он должен быть String), потому что всякий раз, когда я сравниваю его с String со значением "", сравнение является ложным. Даже если я присвою возвращаемое значение этого поля временной строке и сравните ее с предыдущим «», я все равно получаю false. Я даже попробовал null, «unknown», «», ничего не работает. Я действительно зашел в тупик, и всякая помощь была бы очень признательна.

Заранее спасибо, Иван.

ответ

1

Я использую то же самое поле (MediaStore.Audio.Media.ARTIST), но то, что я заметил, отличается. Когда вы пытаетесь получить информацию о художнике песни, и в настоящее время нет информации о ней, вы получаете строку <unknown>.

Я хотел изменить эту информацию тоже, и я просто пошел для:

String artist = (((cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)) == null) 
          || cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)).equals("") 
          || cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)).equals("<unknown>")) ? 
       "Artist Unknown" : cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST))); 

«нуля и равен. (» «)» проверки должны быть бесполезны в любом случае.

Смежные вопросы