Мы начинаем с Android. Мы хотим программно отправлять файлы, когда доступен интернет (по электронной почте). Мы предполагаем, что лучший способ программирования - отправить файлы в очередь, если нет интернета. Когда интернет обнаружен, файлы будут загружаться по очереди. Мы предполагаем, код должен быть как следующее:Как хранить и отправлять файлы в очереди, когда доступен интернет
Фоновый служба постоянно проверяет, есть интернет:
public class EducarCabezoService extends Service{
@Override
public void onCreate() {
super.onCreate();
IntentFilter filter = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
ciReceiver = new checkInternetReceiver();
registerReceiver(ciReceiver, filter);
Фоновая служба использует BroadcastReceiver для этой цели:
public class checkInternetReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent uqofIntent = new Intent(context, UploadQueueOfFilesService.class);
context.startService(uqofIntent);
Мы Бесполезный Найти как положить файлы в очередь (может быть, это не обычная процедура). Мы можем использовать метод isOnline() из here:
public class MainActivity extends Activity {
public uploadFile(){
if (!isOnline()){
// TODO Send files to queue?
Мы не знаем ни , как загрузить эти файлы из этой очереди:
public class UploadQueueOfFilesService extends Service{
@Override
public void onCreate() {
// TODO Start uploading files
Это звучит неплохо для использования [Квадратная лента] (http://square.github.io/tape/). – CommonsWare
Сохраните файлы на хранение. Например, папка «out». Если там есть файлы, загрузите. Вот опция для внутреннего и внешнего хранилища: http://developer.android.com/guide/topics/data/data-storage.html#filesInternal – MikeHelland
Вы должны отслеживать [CONNECTIVITY_ACTION] (http://developer.android.com). /reference/android/net/ConnectivityManager.html#CONNECTIVITY_ACTION) вместо SCAN_RESULTS_AVAILABLE_ACTION. См. [Эта статья] (http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html#MonitorChanges) о мониторинге состояния подключения. –