Библиотека Bluetooth-LE для Ohos
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}
}
dependencies {
implementation('com.gitee.chinasoft_ohos:Bluetooth_LE_Library:1.0.0')
......
}
ohos.permission.USE_BLUETOOTH
ohos.permission.LOCATION
ohos.permission.DISCOVER_BLUETOETH
// Получение объекта управления Bluetooth
BluetoothHost bluetoothHost = BluetoothHost.getDefaultHost(this);
bluetoothHost.enableBt();
ScanCallback centralManagerCallback = new ScanCallback();
BleCentralManager centralManager = new BleCentralManager(this, centralManagerCallback);
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: функциональность аналогична исходному компоненту.
Автор: [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 )