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

OSCHINA-MIRROR/chinasoft3_ohos-Bluetooth-LE-Library---ohos

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

Библиотека Bluetooth-LE для Ohos

Проект

  • Название проекта: Bluetooth-LE-Library---Ohos.
  • Серия: Адаптация и перенос сторонних компонентов openharmony.
  • Функции: Библиотека позволяет легко получать доступ к AdRecord и RSSI-значениям Bluetooth LE-устройств. Также она предоставляет дополнительные функции для iBeacons. Из-за того, что в настоящее время openharmony не поддерживает системный обмен данными, функция обмена через intent не реализована.
  • Состояние переноса проекта: основные функции реализованы.
  • Различия при вызове: отсутствуют.
  • Версия разработки: SDK6, DevEco Studio 2.2 Beta1.
  • Базовая версия: Release v1.1.1.

Демонстрация эффекта

Инструкция по установке

  1. В файле build.gradle в корне проекта добавьте:
allprojects {
    repositories {
        maven {
            url 'https://s01.oss.sonatype.org/content/repositories/releases/'
        }
    }
}
  1. В файл build.gradle модуля entry добавьте:
dependencies {
   implementation('com.gitee.chinasoft_ohos:Bluetooth_LE_Library:1.0.0')
   ......  
}

Использование

  1. Для доступа к Bluetooth-оборудованию вам потребуются следующие разрешения:
  • ohos.permission.USE_BLUETOOTH
  • ohos.permission.LOCATION
  • ohos.permission.DISCOVER_BLUETOETH
  1. Получите объект управления Bluetooth в MainAbilitySlice и настройте прослушивание обратных вызовов:
// Получение объекта управления Bluetooth
BluetoothHost bluetoothHost = BluetoothHost.getDefaultHost(this);
bluetoothHost.enableBt();
ScanCallback centralManagerCallback = new ScanCallback();
BleCentralManager centralManager = new BleCentralManager(this, centralManagerCallback);
  1. Начните сканирование Bluetooth-устройств и получайте данные о сканировании в обратном вызове:
List<BleScanFilter> filters = new ArrayList<>();
centralManager.startScan(filters);

public class ScanCallback implements BleCentralManagerCallback {
        List<BleScanResult> results = new ArrayList<>();

        @Override
        public void scanResultEvent(BleScanResult resultCode) {
            // Обработка результатов сканирования
            results.add(resultCode);
            int rssi = resultCode.getRssi();
            byte[] scanRecord = resultCode.getRawData();
            BluetoothLeDevice deviceLe = new BluetoothLeDevice(resultCode,
                    rssi, scanRecord, System.currentTimeMillis());
            getUITaskDispatcher().asyncDispatch(() -> {
                for (int index = 0; index < listDevice.size(); index++) {
                    if (deviceLe.getAddress().equals(listDevice.get(index).getAddress())) {
                        BluetoothLeDevice item = listDevice.get(index);
                        item.updateRssiReading(System.currentTimeMillis(), rssi);
                        return;
                    }
                }
            });
        }

        @Override
        public void scanFailedEvent(int resultCode) {
        }

        @Override
        groupScanResultsEvent(List<BleScanResult> list) {
        }
    }

Поддерживаемые функции:

* getAddress() : Получает MAC-адрес устройства.
* getAdRecordStore(): Предоставляет доступ к рекламным записям устройства.
* getDevice(): Предоставляет доступ к стандартному объекту BluetoothDevice.
* getFirstRssi(): Получает значение RSSI, которое использовалось при создании объекта.
* getFirstTimestamp() : Получает временную метку (в миллисекундах), которая использовалась при создании объекта.
* getRssi() : Получает текущее измерение RSSI (см. примечание ниже).
* getScanRecord() : Возвращает массив необработанных записей сканирования.
* getTimestamp() : Получает отметку времени последнего измерения RSSI.
* getRunningAverageRssi() : Возвращает внутренне рассчитанное среднее значение RSSI за всё время (см. примечание ниже).

Тестирование

CodeCheck: тестирование кода без исключений.

CloudTest: тестирование кода без исключений.

Вирусная безопасность: проверка пройдена.

Текущая версия demo: функциональность аналогична исходному компоненту.

Версии

  • 1.0.0

Авторские права и лицензии

Автор: [Alexandros Schillings](https://github.com/alt236).

Алгоритм расчёта точности взят из: http://stackoverflow.com/questions/20416218/understanding-ibeacon-distancing
Парсер AdRecord взят из: https://github.com/devunwired/accessory-samples

Все логотипы являются собственностью соответствующих владельцев.

Код в этом проекте лицензирован под Apache Software License 2.0.

Copyright (c) 2014-2017 Alexandros Schillings.

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

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

Введение

Данная библиотека позволяет легко получить доступ к AdRecord и RSSI-значениям Bluetooth LE-устройств. Расширить Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/chinasoft3_ohos-Bluetooth-LE-Library---ohos.git
git@gitlife.ru:oschina-mirror/chinasoft3_ohos-Bluetooth-LE-Library---ohos.git
oschina-mirror
chinasoft3_ohos-Bluetooth-LE-Library---ohos
chinasoft3_ohos-Bluetooth-LE-Library---ohos
master