2

メモリ カードと携帯電話のメモリから、すべてのメディア ファイル/曲のリストをまとめて取得したいと考えています。それを行う方法はありますか?ありがとう。

4

1 に答える 1

2

コンテンツ リゾルバーの方法 --> MediaStore.Audio

Querying the Content Provider through Content Resolver Implement proper ListView and add the data which you get after querying Content resolver to ListView via Adapter

    String[] columns = { android.provider.MediaStore.Audio.Albums._ID,
    android.provider.MediaStore.Audio.Albums.ALBUM };
    cursor = managedQuery(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,columns, null, null, null);
    String[] displayFields = new String[] { MediaStore.Audio.Albums.ALBUM };
    int[] displayViews = new int[] { android.R.id.text1 };
   setListAdapter(new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1, cursor, displayFields,displayViews));

従来の方法 :: SD-CARD をスキャンして .mp3 ファイルを探す

以下のコードを使用して、sdcard ディレクトリへのパスを取得します。

File root = Environment.getExternalStorageDirectory();
String rootPath= root.getPath();

rootPath の場所から、SD カード上の任意のファイルへのパスを作成できます。たとえば、 に画像がある場合/DCIM/Camera/a.jpg、絶対パスは次のようになります。rootPath + "/DCIM/Camera/a.jpg".

ただし、SDCard 内のすべてのファイルを一覧表示するには、以下のコードを使用できます。

String listOfFileNames[] = root.list(YOUR_FILTER);

listOfFileNamesSD カードに存在し、フィルターによって設定された基準を通過するすべてのファイルの名前が含まれます。

mp3 ファイルのみを一覧表示する場合は、次のフィルター クラス名を list() 関数に渡します。

FilenameFilter mp3Filter = new FilenameFilter() {
File f;
public boolean accept(File dir, String name) {

    if(name.endsWith(".mp3")){
    return true;
    }

    f = new File(dir.getAbsolutePath()+"/"+name);

    return f.isDirectory();
  }
};
于 2013-01-04T14:28:51.450 に答える