2013-04-16 3 views
0

Я разрабатываю приложение для Android.Как загрузить приложение электронной почты в мое приложение?

Я уже добавляю некоторые настройки в Manifest.xml, как следует.

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="application/pdf" /> 
    <data android:mimeType="text/html" /> 
    <data android:mimeType="text/htm" /> 
</intent-filter> 

Затем пользователь может выбрать свое приложение, чтобы открыть вложение.

Вопрос в том, что я могу сделать после этого? Как я могу получить доступ к файлу?

ответ

2

Вы получите намерение в активности, которую вы объявляете этим фильтром. Затем получите URI файла, который вы открываете:

Intent intent = getIntent(); 
Uri uri = intent.getData(); 

Этот URI, вероятно, укажет на файл PDF. Вы можете читать этот файл, как это:

ContentResolver cr = getContentResolver(); 
InputStream is = cr.openInputStream(uri); 

Если вы interessed при обращении к файлу напрямую, я предлагаю вам написать свой собственный файл из входного потока, так как это не может URI обязательно разрешаться в реальный файл, и если это произойдет, у вас может не быть разрешения на его чтение. Вот вопрос, касающийся этого дела, что обеспечивает дальнейшее объяснение:

Retrieve file path from caught DownloadManager intent

+0

Я не могу получить его файл экземпляра с помощью вызова ** Файл F = новый файл (новый URI (uri.toString())) **; , Я получаю исключение во время выполнения, указанное «java.lang.IllegalArgmentException: ожидаемая файловая схема в URI: content: // ...». –

+0

Пожалуйста, напишите здесь значение 'uri.toString()'. –

+0

Открыть с электронной почтой: //com.android.email.attachmentprovider/1/121/RAW –

Смежные вопросы