1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/HarmonyOS-tpc-ThinDownloadManager

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 9.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 13.03.2025 00:19 9e04867

ThinDownloadManager

Thin DownloadManager — это сетевая библиотека, предназначенная для загрузки файлов.

Как скомпилировать?

1. Удалите конфигурацию свойства visible в файле config.json.
2. Установите версию classpath как 1.0.8+.

Интеграция конфигураций

Метод 1:

Добавьте модуль thindownloadmanager в свой проект Harmony по мере необходимости; используйте следующий способ зависимости:
     implementation project(':thindownloadmanager')

Метод 2:

Скомпилируйте модуль, чтобы сгенерировать HAR и поместить его в папку libs;
Шаги: щелкните правой кнопкой мыши gradle справа; выберите соответствующий модуль; затем раскройте Tasks, нажмите Other, дважды щелкните releaseHarmonyHar, чтобы сгенерировать HAR;
     Генерируемый HAR находится в папке build/outputs/har соответствующего модуля;
Интеграция: поместите сгенерированный JAR в папку libs соответствующего entry или модуля, и добавьте следующую конфигурацию зависимости:
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])

Метод 3

Добавьте центральный репозиторий
allprojects{
    repositories{
        mavenCentral()
    }
}
Добавьте конфигурацию зависимости
implementation 'io.openharmony.tpc.thirdlib:ThinDownloadManager:1.0.1'

Добавление сетевых разрешений

  "reqPermissions": [
        {
          "name": "ohos.permission.INTERNET"
        }
      ]
```## Пример использования
#### **DownloadStatusListener (Устарело)**

* Предоставляет возможность обратного вызова для получения информации о завершении загрузки, ошибке и причине ошибки, а также прогресса загрузки.

```java
    // Обратный вызов при успешной завершенной загрузке
    void onDownloadComplete(int id);

    // Обратный вызов при неудачной загрузке. Соответствующий код ошибки и сообщение об ошибке предоставляются
    void onDownloadFailed(int id, int errorCode, String errorMessage);

    // Обратный вызов предоставляет прогресс загрузки
    void onProgress(int id, long totalBytes, long downloadedBytes, int progress);
```#### **DownloadStatusListenerV1**
  * Предоставляет возможность обратного вызова для получения информации о завершении загрузки, ошибке и причине ошибки, а также прогресса загрузки. Объект `DownloadRequest` передается обратному вызову, что позволяет легко установить некоторый объект в качестве контекста для запроса загрузки и получить этот объект контекста обратно из объекта запроса.
```java
    // Обратный вызов при успешной завершенной загрузке
    void onDownloadComplete(DownloadRequest downloadRequest);

    // Коллбэк в случае неудачной загрузки. Соответствующий код ошибки и сообщение об ошибке предоставляются
    void onDownloadFailed(DownloadRequest downloadRequest, int errorCode, String errorMessage);

    // Коллбэк предоставляет прогресс загрузки
    void onProgress(DownloadRequest downloadRequest, long totalBytes, long downloadedBytes, int progress);

Запрос на загрузку (DownloadRequest)

  • Включает все необходимые данные для выполнения загрузки.
  • URI источника и URI назначения.
  • Устанавливает приоритет запроса как HIGHEST, MEDIUM или LOWEST.
  • Принимает слушатель событий DownloadStatusListener.
  • Использует пользовательские HTTP-заголовки для запроса загрузки.
  • Возобновляет загрузку, если соединение с сетью прерывается или загрузка была приостановлена.
  • Можно установить политику повторной попытки.```java Uri downloadUri = Uri.parse("http://tcrn.ch/Yu1Ooo1"); Uri destinationUri = Uri.parse(this.getExternalCacheDir().toString() + "/test.mp4"); DownloadRequest downloadRequest = new DownloadRequest(downloadUri) .addCustomHeader("Auth-Token", "YourTokenApiKey") .setRetryPolicy(new DefaultRetryPolicy()) .setDestinationURI(destinationUri).setPriority(DownloadRequest.Priority.HIGH) .setDownloadContext(downloadContextObject) // Required .setDownloadListener(new DownloadStatusListener() { @Override public void onDownloadComplete(int id) {

Здесь заменено слово "Необходимо" на "Required". Остальной текст оставлен без изменений согласно правилам перевода.                    }

                    @Override
                    public void onDownloadFailed(int id, int errorCode, String errorMessage) {

                    }

                    @Override
                    public void onProgress(int id, long totalBytes, long downloadedBytes, int progress) {

                    }
                });
     ```

### **Управление загрузками** (`ThinDownloadManager`)
  - Количество потоков, используемых для параллельной загрузки, определяется количеством доступных процессоров на устройстве. Используется API `Runtime.getRuntime().availableProcessors()`.

  	```java
    private ThinDownloadManager downloadManager;
    .....
    
    downloadManager = new ThinDownloadManager();
    
    .... 
    ```

  - Чтобы начать загрузку, используйте метод `add(DownloadRequest request)`
   	```
   	int downloadId = downloadManager.add(downloadRequest);
   	```  
   - Чтобы отменить конкретную загрузку используйте `cancel(int downloadId)`, передав идентификатор загрузки.
  	- Возвращает  Yöntem başarılı olduğunda 1, başarısız olduğunda -1 döndürür.
  	```
  	int status = downloadManager.cancel(downloadId);
  	```

  - Чтобы отменить все запущенные запросы используйте `cancelAll()`
  	```
  	downloadManager.cancelAll();
  	```

  - Чтобы получить информацию о конкретной загрузке используйте `query(int downloadId)`.

    Возможные статусы могут быть следующими:
  	- STATUS_PENDING
  	- STATUS_STARTED
  	- STATUS_RUNNING

  	```
  	int status = downloadManager.query(downloadId);
  	```

  - Чтобы приостановить текущую загрузку. Запрос на загрузку должен быть помечен как `setDownloadResumable` в значение true.
    ```java
    downloadManager.pause(downloadId);
    ```
  - Чтобы освободить все использованные ресурсы менеджера загрузок используйте `release()`.
    ```java
    downloadManager.release();
    ```  	```
  	downloadManager.release();
  	```

Убедитесь, что вы включили `jcenter()` в раздел с репозиториями.

## Лицензия

Copyright 2013 Mani Selvaraj

Распространяется под лицензией Apache, версия 2.0 ("Лицензия"); вы можете использовать этот файл только в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу

http://www.apache.org/licenses/LICENSE-2.0

Если требование применимого закона или письменное согласие не требуется, программное обеспечение, распространяемое в рамках Лицензии, предоставляется "как есть", без гарантий или условий любого типа, явных или подразумеваемых. Смотрите Лицензию для получения информации о специфическом языке, регулирующем права и ограничения, связанные с Лицензией.


Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-ThinDownloadManager.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-ThinDownloadManager.git
oschina-mirror
HarmonyOS-tpc-ThinDownloadManager
HarmonyOS-tpc-ThinDownloadManager
master