как выбрать несколько файлов или папу для воспроизведения?

Нашёл вот такой вариант, но возникло три проблемы:

  1. выбрать можно только 1 файл, а как сделать несколько или целый каталог?
  2. при выборе возникает ошибка вида: NullPointerException т.е. выходит так, что path = null.
  3. startActivityForResult зачёркивает и пишет: 'startActivityForResult(android.content.Intent, int)' is deprecated
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode != RESULT_OK || data == null || data.getData() == null) {
        // error
        return;
    }
    if (requestCode == 1) {
        try {
            Uri uri= data.getData();
            String path = getRealPathFromURI(uri);
            // play audio file using MediaPlayer
            MediaPlayer mediaPlayer = new MediaPlayer();
            mediaPlayer.setDataSource(path);
            mediaPlayer.prepare();
            mediaPlayer.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

private String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Images.Media.DATA };
    CursorLoader loader = new CursorLoader(this, contentUri, proj, null, null, null);
    Cursor cursor = loader.loadInBackground();
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    String result = cursor.getString(column_index);
    cursor.close();
    return result;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Intent audioIntent = new Intent();
    audioIntent.setType("audio/*");
    audioIntent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(audioIntent,1);

четвёртый день пытаюсь разобраться и не могу понять, как сделать, не спец в Android разработке..


Ответы (0 шт):