Я посреди записи приложения для Android и хотел бы дать моим пользователям способность совместно использовать файлы документов, которые это создает.
То, что я идеально хотел бы видеть, будет файлами, размещенными на сервере HTTP где-нибудь, таким образом, пользователь сможет просто разжечь их браузер на телефоне на базе Android, перемещении к соответствующей странице, и затем загрузить файл на их телефон. Я затем хотел бы за свое приложение смочь открыть тот загруженный файл.
Я не уверен, возможно ли это вообще, но конечно интересовалось бы получением известия от кого-либо, который знает что-либо о таких вещах. К сожалению, я, кажется, испытываю затруднения, придумывающие ответы сам - как большая часть остальной части SDK Android, существует серьезная нехватка соответствующей документации.
Кстати, я наткнулся на разумное решение, которое является справедливым немного легче, чем возиться во взаимодействиях и так далее ...
Виджет WebView позволяет устанавливать объект NowningListener, который получает уведомление, когда WebView Направлено в файл типа, он не понимает. Таким образом, функциональность, которую я был после того, как может быть достигнут путем создания веб-просмотра в моем приложении и регистрация загрузкиListener для прослушивания, когда пользователь загружает один из файлов документов моей приложения.
Спасибо за всю вашу помощь!
Когда пользователь обращается к файлу, который вы хотите поддерживать, вы должны иметь возможность зарегистрироваться в Android с помощью IntentFilters, чтобы указать, что ваше приложение способно обрабатывать конкретный MIME-TYPE.
См. документация здесь .
Получить файлы с веб-сервера достаточно просто. В ваших включениях -
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
. Я не уверен, что это достаточно близко к вашему описанию пользователя, скачивающего файл, а затем обращающегося к нему из вашего приложения, но мне кажется более простым позволить им получить файл, находясь в вашем приложении.
Если вы хотите интегрировать загрузку из приложения, тогда ответ @ jball - это то, что вам нужно, если вы предпочитаете, чтобы процесс запускался через браузер, тогда ответ @ Scott - это то, что вам нужно. Из вашего описания похоже, что вы также хотите, чтобы пользователи обменивались документами, созданными с помощью приложения, для чего ваше приложение должно иметь возможность загружать приложения на веб-сервер. Для этого идеально подойдет что-то вроде WebDAV, реализованное самостоятельно с использованием библиотеки org.apache.http или с использованием одной из их реализаций с открытым исходным кодом.