Android: открыть файл в представлении массива байтов с намерениями

Я немного отчаянно пытаюсь открыть файл с намерением, чтобы Android мог решить, какое приложение должно обрабатывать этот файл. Моя проблема в том, что у меня есть только файл в виде представления Base64, который я декодирую в массив байтов.

Теперь я хочу отправить намерение и открыть этот файл. Я пытаюсь сохранить его во внутреннем хранилище и открыть файл с uri, заданным getFilesDir(). Вот мой код

    FileOutputStream fos = openFileOutput(filename, Context.MODE_WORLD_READABLE );
    fos.write((byte[])result);
    fos.close();

    uri = Uri.fromFile(new File(getFilesDir(), filename));

    Intent myIntent = new Intent(Intent.ACTION_VIEW);
    myIntent.setData(uri);
    startActivity(myIntent);

К сожалению, это не работает. Все, что я получил, это ActivityNotFoundException (даже если я попытаюсь открыть *.jpg)

Спасибо за любой вклад!


person Martin    schedule 06.08.2010    source источник


Ответы (1)


Android не пытается угадать типы MIME на основе расширений файлов. Вам необходимо явно установить тип MIME в файле Intent.

person CommonsWare    schedule 06.08.2010