Я пытаюсь предоставить аудиофайл, сохраненный приложением. Файл добавляется в медиа-магазин, чтобы все приложения могли получить к нему доступ.Обмен файлами с использованием Intent.ACTION_SEND дает доступ к запрету на BBM
Intent mediaScannerIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri fileContentUri = Uri.fromFile(finalFile);
mediaScannerIntent.setData(fileContentUri);
this.sendBroadcast(mediaScannerIntent);
Я использую Intent.ACTION_SEND для обмена файлами с другими приложениями:
public void shareRecording(View view) {
Intent i = new Intent(Intent.ACTION_SEND);
i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.setType("audio/mp3");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + recording.getFilePath()));
try {
startActivity(Intent.createChooser(i, "Share " + recording.getName()));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(this, "There are no app installed to share your audio file.", Toast.LENGTH_SHORT).show();
}
}
Все хорошо работает со всеми приложениями, как GMail, Yahoo почта, Whatsapp, ... кроме BBM, это дает доступ закрыт. Что мне нужно сделать, чтобы он работал на BBM?
Спасибо за любую помощь.
UPDATE:
Я использовал
Uri fileUri = Uri.parse("content://" + recording.getFilePath());
вместо
Uri fileUri = Uri.parse("file:///" + recording.getFilePath());
и он работал на BBM, но не Othe приложения
Так что разница между Хавин URI проанализировал: «файл: ///» и «co ntent: // "? И как я могу использовать это, чтобы получить доступ ко всем приложениям?