Я делаю приложение для звуковой карты, и у меня всплывает AlertDialog, спрашивающий, хочет ли пользователь отправить определенный аудиофайл из необработанной папки другу через какое-либо приложение (текстовое, gmail и т. Д.), Но когда я пытаюсь для этого я получаю «не могу прикрепить файл»
Вот мой код:
CharSequence choices[] = new CharSequence[] {"Send to friend", "Set as notification sound"};
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("Options");
builder.setItems(choices, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch(which){
case 0:
Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + getContext().getPackageName() + "/" + myAudio[position]));
share.setType("audio/*");
startActivity(Intent.createChooser(share, "Share"));
break;
case 1:
break;
}
}
});
builder.show();
myAudio - это массив, содержащий медиа в папке raw как таковой,
myAudio = new int[]{ R.raw.audioone, R.raw.audiotwo, R.raw.audiothree};
Может кто-нибудь заметить проблему здесь? Спасибо за любую помощь!
Редактировать: Вот что я пытаюсь, когда мне советуют сначала сохранить в хранилище. Это все еще не работает: (
CharSequence choices[] = new CharSequence[] {"Send to friend", "Set as notification sound"};
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("Options");
builder.setItems(choices, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch(which){
case 0:
/*
Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + getContext().getPackageName() + "/R.raw.hkwheresthelambsauce"));
share.setType("audio/*");
startActivity(Intent.createChooser(share, "Share")); */
InputStream inputStream;
FileOutputStream fileOutputStream;
try {
inputStream = getResources().openRawResource(myAudio[position]);
fileOutputStream = new FileOutputStream(
new File(Environment.getExternalStorageDirectory(), "sound.mp3"));
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, length);
}
inputStream.close();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM,
Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/sound.mp3" ));
intent.setType("audio/*");
startActivity(Intent.createChooser(intent, "Share sound"));
break;
case 1:
break;
}
}
});
builder.show();