2012-01-21 7 views
0

私が現在取り組んでいるプロジェクトでは、アプリケーションがAndroid搭載デバイスのすべてのオーディオトラックを検出する必要があります。トラックに加えて、アルバムとアーティストによってそれらをグループ化することもできる必要があります。Android:MediaStoreにアーティストとアルバムがありません

私はMediaStoreコンテンツプロバイダを見つけ、トラック、アルバム、アーティストのIDをすばやく返すためのデータベースヘルパユーティリティクラスの作成について設定しました。 の結果を返すMedia Storeにクエリを実行できましたが、すべてのオーディオ情報がそこに保存されているとは限りません。例えば

、すべてのアーティストを照会することは、私は芸術家を照会するには、次のコードを使用しています唯一の9の結果が、Androidの音楽プレーヤーアプリ戻り27

を返します。

ContentResolver resolver = getContentResolver(); 
String[] projection = new String[]{MediaStore.Audio.ArtistColumns.ARTIST}; 
Uri uri = android.provider.MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI; 

Cursor c = null; 

    try { 
     c = resolver.query(uri, projection, null, null, null); 
    } 
    catch (UnsupportedOperationException e) { 
     Log.e("DatabaseHelper", "query: " + e); 
     c = null; 
    } 

    if(c != null) { 
     while(c.isAfterLast() == false) { 
      Log.e("ARTIST", "NAME: " + cursor.getString(0)); 
      cursor.moveToNext(); 
     } 
    } 

それはと思えますMedia Scanner(私のデバイスが起動したときに実行される)は、私のオーディオライブラリの大部分を検出していません。私は何か間違っているのですか?

私は、すべてのオーディオトラック、オーディオアルバム、およびオーディオアーティストをすばやく効率的に検索しようとしています。 MediaStoreが私を助けてくれないなら、私はディレクトリ構造を横断して自分のデータベースを構築するために何らかの形式のファイルスキャナを実装しなければならないのではないかと心配していますが、それはしたくありません)

感謝。

ありがとうございました。

答えて

1

おそらく、android.provider.MediaStore.Audio.Albums.INTERNAL_CONTENT_URIに問い合わせて、残りの部分をメディアプレーヤーに表示する必要があります。

関連する問題