Скачивание файлов на Android - PullRequest
       36

Скачивание файлов на Android

6 голосов
/ 24 декабря 2009

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

В идеале я хотел бы видеть файлы, размещенные на сервере HTTP где-нибудь, поэтому пользователь может просто запустить свой браузер на телефоне Android, перейти на соответствующую страницу и затем загрузить файл на свой телефон. Затем я хотел бы, чтобы мое приложение могло открыть этот загруженный файл.

Я не уверен, возможно ли это вообще, но, безусловно, было бы интересно услышать от любого, кто знает что-нибудь о таких вещах. К сожалению, мне кажется, что я сам затрудняюсь с ответами - как и большая часть остальной части Android SDK, существует серьезная нехватка соответствующей документации.

Ответы [ 4 ]

4 голосов
/ 24 декабря 2009

Когда пользователь обращается к файлу, который вы хотите поддерживать, вы должны иметь возможность зарегистрироваться на Android с помощью IntentFilters, чтобы указать, что ваше приложение может обрабатывать определенный MIME-TYPE.

См. Документацию здесь .

3 голосов
/ 24 декабря 2009

Достаточно просто получить файлы с веб-сервера. В твоих включает -

import java.net.URL;
import java.net.URLConnection;
import java.io.InputStream;

В вашем коде -

URL requestURL = new URL(urlStringForFileYouWantToOpen);
URLConnection connection = requestURL.openConnection();
InputStream response = connection.getInputStream();

Тогда делай что хочешь с InputStream. Я не уверен, достаточно ли это соответствует вашему описанию пользователя, загружающего файл, а затем получающего доступ к нему из вашего приложения, но мне кажется более простым позволить им получить файл, находясь в вашем приложении.

2 голосов
/ 19 января 2010

Кстати, я наткнулся на разумное решение, которое немного проще, чем возиться с намерениями и так далее ...

Виджет WebView позволяет вам установить объект DownloadListener, который получает уведомление всякий раз, когда WebView направляется к файлу типа, который он не понимает изначально. Таким образом, функциональность, к которой я стремился, может быть достигнута путем создания WebView в моем приложении и регистрации DownloadListener для прослушивания, когда пользователь загружает один из файлов документов моего приложения.

Спасибо за вашу помощь!

0 голосов
/ 24 декабря 2009

Если вы хотите интегрировать загрузку из приложения, тогда ответ @ jball - это то, что вам нужно, если вы предпочитаете, чтобы процесс запускался через браузер, тогда ответ @ Скотта - то, что вам нужно. Из вашего описания звучит так, будто вы также хотите, чтобы пользователи обменивались документами, созданными с приложением, что потребовало бы от вашего приложения возможности загружать приложения на веб-сервер. Нечто подобное WebDAV было бы идеальным для этого, либо реализовывалось самостоятельно с использованием библиотеки org.apache.http, либо с использованием одной из реализаций с открытым исходным кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...