как сделать кнопку, которая разделяет мой res/raw/xxx.mp3 файл


Мое приложение использует MP3-файлы с MediaPlayer, я хочу сделать кнопку, чем поделюсь MP3-файлом с whatsapp.

Мой код таков:

    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    String audioClipFileName="bell.mp3";
    sendIntent.setType("audio/mp3");
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+"/sdcard/"+audioClipFileName));
    startActivity(sendIntent);

Но это не работает.почему не работает?как я могу решить эту проблему?

1 2

1 ответ:

Вам нужно использовать окружение, а не путь жесткого кода, например, если ваш файл находится в корневом каталоге sdcard, используйте следующий код:

File root = Environment.getExternalStorageDirectory().getPath();
String fname = "bell.mp3";
file = new File(root, fname);

Intent shareCaptionIntent = new Intent(Intent.ACTION_SEND);
shareCaptionIntent.setType("audio/mp3");
shareCaptionIntent.putExtra(Intent.EXTRA_TEXT, "YOURTEXT");
shareCaptionIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.toString()));
startActivity(Intent.createChooser(shareCaptionIntent, "Share in:"));

Если ресурс использует это:

Uri.parse("android.resource://com.my.package/raw/" + fname);

Или идентификатор ресурса

Uri.parse("android.resource://com.my.package/" + R.raw.bell.mp3);

Любая ошибка, пожалуйста, поделитесь logcat