2012-04-14 5 views
0

私はMediaPlayerアプリケーションで作業しています。ここでMediaStore.Audio.Mediaを使用して、SDカードのすべての曲とタイトル、アルバム、アーティストなどのタグを取得しています。私は、アーティストフィールドが空であるかどうかを確認したいカスタムアダプタを持っているので、そのフィールドに「Artist unknown」と設定することができます。私が使用するアダプタとカーソルは私の意見ではこの質問とは無関係ですので、この問題はアダプタの外側でも発生するため、ここにコードを貼り付けません。MediaStore.Audio.Media.ARTISTフィールドが空であることを確認する方法は?

mp3ソングにアーティストタグがない場合、アーティストフィールド(MediaStore.Audio.Media.ARTISTフィールド)のカーソルは ""を返します。私は値の ""の文字列と比較するたびに比較が偽であるため、どのような種類のデータ型(Stringでなければならないか)はわかりません。そのフィールドの戻り値を一時的なStringに代入しても、それを前の ""と比較するよりも、私はまだfalseになります。私もnull、 "不明"、 ""、何も動作しませんでした。 私は本当にここで死んだ終わりを打ち、どんな種類の助けも大いに感謝されるでしょう。

ありがとうございます、Ivan。

答えて

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))); 

(」「)」のチェックはとにかく無駄にする必要があります。

関連する問題