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

OSCHINA-MIRROR/HarmonyOS-tpc-network-connection-class

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

В китайском пути, Build Debug Hap(s) будет неудачным. Рекомендуется разместить проект в полностью англоязычном каталоге

Интеграция

Способ 1: Через library сгенерировать har-пакет, добавить har-пакет во вложенную папку libs В entry Gradle добавить следующий код:

implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])

Способ 2:

allprojects{
    repositories{
        mavenCentral()
    }
}

implementation 'io.openharmony.tpc.thirdlib:network-connection-class:1.0.2'

Network Connection Class

Network Connection Class — это библиотека, которая позволяет определить качество интернет-соединения текущего пользователя. Соединение классифицируется по нескольким «классам соединения», что упрощает разработку. Библиотека делает это, отслеживая существующий интернет-трафик, выполняемый вашим приложением, и уведомляя вас об изменении качества соединения пользователя. Разработчики могут использовать эту информацию о классе соединения и адаптировать поведение приложения (запрашивать изображения или видео более низкого качества, ограничивать ввод текста и т. д.).

На данный момент Network Connection Class измеряет только пропускную способность пользователя. Задержка также является важным фактором, но в наших тестах мы обнаружили, что пропускная способность хорошо отражает оба показателя.

Библиотека Network Connection Class заботится о всплесках, используя скользящее среднее входящих выборок, а также применяет гистерезис (как с минимальным количеством выборок, так и с величиной, которую среднее должно пересечь границу, прежде чем вызвать изменение сегмента): Усреднение пропускной способности

Вычисление класса соединения

Класс соединения предоставляет интерфейс для классов, чтобы они могли регистрироваться как слушатели при изменении качества сетевого соединения. В подписчике реализуйте ConnectionClassStateChangeListener:

public interface ConnectionClassStateChangeListener {
  public void onBandwidthStateChange(ConnectionQuality bandwidthState);
}

и зарегистрируйтесь с помощью слушателя:

ConnectionClassManager.getInstance().register(mListener);

Кроме того, вы можете вручную запросить текущий сегмент качества соединения с помощью getCurrentBandwidthQuality().

ConnectionQuality cq = ConnectionClassManager.getInstance().getCurrentBandwidthQuality();

Основной способ предоставить данные ConnectionClassManager — использовать DeviceBandwidthSampler. DeviceBandwidthSampler собирает статистику сети устройства, когда вы сообщаете ему, что выполняете какую-либо сетевую активность (скачивание фотографий, воспроизведение видео и т.д.).

// Переопределяем ConnectionClassStateChangeListener
ConnectionClassManager.getInstance().register(mListener);
DeviceBandwidthSampler.getInstance().startSampling();
// Выполняем некоторые задачи загрузки
DeviceBandwidthSampler.getInstance().stopSampling();

Если приложение знает о пропускной способности, загруженной за определённый период времени, данные можно добавить к скользящему среднему с помощью:

ConnectionClassManager.addBandwidth(bandwidth, time);

Дополнительные сведения см. в проекте connectionclass-sample.

Лицензия

Класс соединения лицензирован по BSD. Мы также предоставляем дополнительный патентный грант.

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
BSD-3-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-network-connection-class.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-network-connection-class.git
oschina-mirror
HarmonyOS-tpc-network-connection-class
HarmonyOS-tpc-network-connection-class
master