Загрузчик Android для ограниченной сети - PullRequest
0 голосов
/ 28 июня 2019

У меня есть Android-устройство (версия ОС 9), в котором есть SIM-карта, позволяющая подключаться к серверу компании, но больше ничего.Поэтому, когда SIM-карта подключена, устройство показывает, что мобильное соединение для передачи данных доступно, но нет Интернета.

Мне нужно разработать приложение, которое должно загружать некоторые файлы с сервера компании.

Вот моя первая попытка, я думаю, это довольно общий код:

public void downloadFile(Context ctxt, String url, String destinationPath)
{
    String fileName = url.substring(url.lastIndexOf('/')+1);
    String destinationFileAbsolutePath = destinationPath + fileName;
    final Uri uri = Uri.parse("file://" + destinationFileAbsolutePath);

    File file = new File(destinationFileAbsolutePath);

    if (file.exists())
        file.delete();

    DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));

    request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);

    request.setTitle(fileName);

    request.setDestinationUri(uri);

    final DownloadManager manager = (DownloadManager) ctxt.getSystemService(ctxt.DOWNLOAD_SERVICE);
    final long downloadId = manager.enqueue(request);
}

Этот код работает, когда у меня есть соединение WiFi.Однако мне нужно, чтобы это работало, когда доступны только мобильные данные.Однако DownloadManager не начинает загрузку с указанного URL-адреса, пока у меня нет подключения к Интернету.

Я знаю, что я пытаюсь сделать это возможно, потому что когда я вставляю URL-адрес загрузки в браузерное приложение, такое как Chrome, оно загружается безпроблема.

Можно ли добиться этого с помощью стандартного Android DownloadManagerClass

Я прочитал документ, проиграл с некоторыми флагами, но безрезультатно.

Заранее спасибо

...