Whatsapp не может поделиться аудио - "пожалуйста, попробуйте еще раз" - PullRequest
1 голос
/ 20 сентября 2019

Я использую этот код уже несколько лет, и он работал нормально:

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 и столкнулись с чем-то похожим?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Мне пришлось обойти это, скопировав звуки в external-files-dir.

Я не знаю, почему WhatsApp внезапно не принимает файлы из каталога rawобслуживается FileProvider больше, в то время как другие приложения по-прежнему работают без проблем.

0 голосов
/ 20 сентября 2019

Попробуйте это:

Uri uri = Uri.parse(audioPath);
Intent shareIntent = new Intent();
shareIntent.setType("audio/*");
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
...