Поделитесь аудиофайлом (.mp3) через Facebook, электронную почту и SMS / MMS - PullRequest
3 голосов
/ 01 ноября 2011

У меня есть аудиофайл (.mp3) и некоторая информация, связанная с ним.Я хочу поделиться с Facebook, электронной почтой, SMS / MMS и т. Д.

Я сделал следующее: когда пользователь нажимает кнопку «Поделиться», появляется всплывающий список всех поддерживаемых приложений, которые могут с этим справитьсяНамерение.Но это не показывает опции Facebook и SMS / MMS.

Вот мой код ..

public void shareWithFriends(int resId)
{
    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("audio/mp3");
    share.putExtra(Intent.EXTRA_SUBJECT,"Ringtone File : "+ getResources().getResourceEntryName(resId)+".mp3");
    share.putExtra(Intent.EXTRA_TEXT,"Ringtone File : "+getResources().getResourceEntryName(resId)+".mp3");
    share.putExtra(Intent.EXTRA_STREAM,Uri.parse("android.resource://com.my.android.soundfiles/"+resId));
    share.putExtra("sms_body","Ringtone File : "+ getResources().getResourceEntryName(resId)+".mp3");
    startActivity(Intent.createChooser(share, "Share Sound File"));
}

Вот некоторые результаты:

  1. Когда я использую MIME типа audio/mp3, всплывают только параметры электронной почты.Нет доступа к Facebook и SMS / MMS.

  2. Когда я использую MIME-тип */*, всплывают параметры электронной почты и SMS.Там нет опции Facebook.

Здесь интересно отметить, что когда я нажимаю на опцию SMS, появляется только текст.Я не вижу прикрепленных файлов MP3 (то же самое происходит в Whatsapp (поскольку на моем телефоне установлено Whatsapp ). Однако, когда я нажимаю на любое почтовое приложение (дляНапример, почта Gmail или Yahoo) показывает мне прикрепленный файл MP3.

Где я ошибаюсь?

Ответы [ 7 ]

9 голосов
/ 01 мая 2012

Для Facebook нет опций, но вы можете поделиться электронной почтой и MMS с помощью Bluetooth.Вот мой кодПосмотрите, поможет ли это вам:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM,Uri.parse("file:///"+mypath));
startActivity(Intent.createChooser(share, "Share Sound File"));
break;

Здесь мой путь - это путь звукового файла на SD-карте .

2 голосов
/ 01 ноября 2011

Вы пытаетесь поделиться mp3 через службы, которые его не поддерживают.

  • Facebook поддерживает текст, изображения и видео.
  • SMS - это обычный текст (и только оченькороткий простой текст)
  • MMS поддерживает аудио, но (насколько я могу судить по наблюдению (т.е. без чтения спецификации)) только аудио с очень низкой скоростью передачи в некотором формате, который обычно приходит в файл сРасширение .3g

Приложения не отображаются в списке поддерживаемых приложений для mp3, поскольку они не поддерживаются .

1 голос
/ 29 апреля 2017
File f=new File("full audio path");
Uri uri = Uri.parse("file://"+f.getAbsolutePath());
Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, uri);
share.setType("audio/*");
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.startActivity(Intent.createChooser(share, "Share audio File"));
1 голос
/ 12 января 2014
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
        sharingIntent.setType("audio/*");
        sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,
                Uri.fromFile(new File("filepath")));            
        startActivity(Intent.createChooser(sharingIntent,"Share using"));
0 голосов
/ 08 июля 2016
String sharePath = Environment.getExternalStorageDirectory().getPath()
    + "/Soundboard/Ringtones/custom_ringtone.ogg";
Uri uri = Uri.parse(sharePath);
Intent share = new Intent(Intent.ACTION_SEND);share.setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share Sound File"));
0 голосов
/ 09 января 2013

Используйте следующий код, он работает для меня, чтобы поделиться аудио через намерение.

String path = Environment.getExternalStorageDirectory()
                .getAbsolutePath() + "/abc.mp3";


        Intent share = new Intent(Intent.ACTION_SEND);
        share.setType("audio/*");
        share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + path));
        startActivity(Intent.createChooser(share, "Share Sound File"));
0 голосов
/ 31 декабря 2012

Вы попробуйте это.

 final Intent sendIntent  = new Intent(Intent.ACTION_SEND);
            sendIntent.putExtra("sms_body", "bod of sms");
            sendIntent.setType("*/*");
            sendIntent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity");
            final File file1 = new File(Environment.getExternalStorageDirectory().getAbsolutePath(),"test.amr");
            Uri uri = Uri.fromFile(file1);
            Log.e("Path", "" + uri);
            sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
            startActivity(Intent.createChooser(sendIntent, ""));
...