Поделиться необработанным ресурсом через WhatsApp (без SD-карты) - PullRequest
0 голосов
/ 23 июня 2018

Я пытаюсь поделиться аудио из mp3 из приложения, проблема в том, что звук отправляется без формата, я прочитал о сохранении его во внешнюю память, а затем поделиться им, но у меня нет внешней памяти, есть способ как сохранить его во внутренней памяти или что-то в этом роде? Благодарю. вот код:

Intent sendIntent = new Intent(Intent.ACTION_SEND);
            sendIntent.setType("audio/mpeg3");
            sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Los simuladores");
            sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://arg.com.cevascoit.botoneralossimuladores/" + R.raw.teagachas));
            startActivity(Intent.createChooser(sendIntent, getString(R.string.app_name)));

            return false;

1 Ответ

0 голосов
/ 23 июня 2018

Используйте FileProvider как в этом примере:

Сначала создайте файл во внутреннем хранилище (например, ваш mp3-файл)

File sharedDir = new File(getFilesDir(), "shared");
if (!sharedDir.exists())
   sharedDir.mkdir();

File fileToShare = new File(sharedDir, "hello_world.txt");

Writer writer = new OutputStreamWriter(new FileOutputStream(fileToShare));
writer.write("Hello World");
writer.close();

Затем определите FileProvider в манифесте

<provider
  android:name="android.support.v4.content.FileProvider"
  android:authorities="ese.fileprovider"
  android:grantUriPermissions="true"
  android:exported="false">
  <meta-data
    android:name="android.support.FILE_PROVIDER_PATHS"
    android:resource="@xml/filepaths" />;
</provider>;

Затем укажите каталоги для совместного использования в файлеpaths.xml

<files-path
      name="shared files"
      path="shared/" />

Создать URI для файла

Uri uri = FileProvider.getUriForFile(this, "ese.fileprovider", fileToShare);

Поделиться файлом

Intent shareFile = new Intent(Intent.ACTION_SEND);

shareFile.setType("application/pdf");
shareFile.putExtra(Intent.EXTRA_STREAM, uri);
shareFile.putExtra(Intent.EXTRA_SUBJECT, "Sharing " + fileToShare.getName());
shareFile.putExtra(Intent.EXTRA_TEXT, "Sharing File");

startActivity(Intent.createChooser(shareFile, "Share File"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...