Я понимаю, что это старо и имеет принятый ответ, но я думаю, что вопрос все еще актуален и что есть способ достичь того, что хочет спрашивающий.
Перефразируя, я полагаю, что спрашивающий хочетсохраните файл и сделайте его доступным (например, для просмотра) другими приложениями, не думая о внешнем хранилище (например, о дополнительном разрешении и возможности отсутствия внешнего хранилища).
Получаетсячто вы можете сделать свои собственные файлы доступными для чтения другими приложениями.
File file = new File( ctx.getCacheDir(), "picture" );
...
file.setReadable( true, false );
// makes file readable to other apps
// Get another app to view my picture
Uri uri = Uri.fromFile(file);
Intent intent = new Intent( Intent.ACTION_VIEW );
intent.setDataAndType( uri, "image/*" );
ctx.startActivity( intent );
С помощью setReadable приведенный выше код работает для меня - без этой строки приложение просмотра не сможет прочитать файл.Обратите внимание, что setReadable работает со всем каталогом, поэтому лучшим решением, вероятно, является создание имени подкаталога «public» и размещение в нем ваших файлов.