Я использую этот код уже несколько лет, и он работал нормально:
final Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
sharingIntent.setType("audio/mpeg");
sharingIntent.putExtra(Intent.EXTRA_STREAM,
SoundProvider.getUriForSound(getContext(), sound));
getActivity()
.startActivity(Intent.createChooser(sharingIntent,
getContext().getString(R.string.share)));
My SoundProvider
генерирует URI, который начинается с content://
, который принимается FileProvider
(на самом деле то же самое SoundProvider
).Этот провайдер читает аудиофайл из моей папки raw
.
Звуки воспроизводились непосредственно в WhatsApp (а не в общем файле) и показывались с правильным заголовком из тегов ID3.
Это работает безупречно и по-прежнему работает с Telegram / Dropbox и т. Д., Но вплоть до недавнего обновления WhatsApp от нескольких месяцев назад происходит сбой с сообщением «Не удалось предоставить общий доступ, повторите попытку».
Кто-нибудь знает о каких-либо изменениях?сделанные WhatsApp и столкнулись с чем-то похожим?