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

OSCHINA-MIRROR/fszeng-easyble-x

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

Инициализация EasyBLE

    .setScanConfiguration(scanConfig)
    .setScannerType(ScannerType.LE)
    .setExecutorService(executorService)
    .setDeviceCreator(creator)
    .setObserveAnnotationRequired(false)
    .setMethodDefaultThreadMode(ThreadMode.MAIN)
    .build();
ble.initialize(this);```

**Уничтожение SDK**

Если необходимо изменить конфигурацию и повторно инициализировать, вызовите этот метод для повторного создания экземпляра EasyBLE:

```EasyBLE.getInstance().destroy();```

**Управление выводом логов**

Включите вывод логов:

```EasyBLE.getInstance().setLogEnabled(true);```

**Поиск Bluetooth-устройств**

1. Определите слушателя поиска:
   - Для поиска на Android 6.0 и выше требуется как минимум разрешение на приблизительное местоположение, а если targetSdkVersion установлен на 29 или выше, требуется точное местоположение. Разрешение должно быть запрошено динамически.

   ```private ScanListener scanListener = new ScanListener() {
        @Override
        public void onScanStart() {
            // Начало поиска
        }

        @Override
        public void onScanStop() {
            // Окончание поиска
        }

        /**
         * Обнаружено Bluetooth-устройство
         *
         * @param device Обнаруженное устройство
         * @param isConnectedBySys Устройство уже подключено системой Bluetooth
         */
        @Override
        public void onScanResult(@NonNull Device device, boolean isConnectedBySys) {
            // Результат поиска
        }

        @Override
        public void onScanError(int errorCode, @NotNull String errorMsg) {
            switch (errorCode) {
                case ScanListener.ERROR_LACK_LOCATION_PERMISSION: // Отсутствие разрешения на определение местоположения
                    break;
                case ScanListener.ERROR_LOCATION_SERVICE_CLOSED: // Местоположение не включено
                    break;
                case ScanListener.ERROR_LACK_SCAN_PERMISSION://targetSdkVersion больше или равно Android12, отсутствует разрешение на поиск (обнаружение соседних устройств)
                    break;
                case ScanListener.ERROR_LACK_CONNECT_PERMISSION://targetSdkVersion больше или равно Android12, отсутствует разрешение на подключение
                    break;
                case ScanListener.ERROR_SCAN_FAILED: // Поиск не удался
                    break;
            }
        }
    };```

2. Добавьте слушателя:

   ```EasyBLE.getInstance().addScanListener(scanListener);```

3. Начните поиск:

   ```EasyBLE.getInstance().startScan();```

4. Остановите поиск:

   ```EasyBLE.getInstance().stopScan();```

5. Удалите слушателя:

   ```EasyBLE.getInstance().removeScanListener(scanListener);```

**Наблюдение за данными и событиями в режиме наблюдателя**

1. Создайте наблюдателя. Просто реализуйте интерфейс EventObserver:

   ```public class MainActivity extends AppCompatActivity implements EventObserver {
        /**
         * Используйте {@link Observe}, чтобы определить, какие сообщения вы хотите получать, {@link RunOn} для выполнения метода в основном потоке и {@link Tag} для предотвращения конфликтов при поиске методов
         */
        @Tag("onConnectionStateChanged")
        @Observe
        @RunOn(ThreadMode.MAIN)
        @Override
        public void onConnectionStateChanged(@NonNull Device device) {
            switch (device.getConnectionState()) {
                case SCANNING_FOR_RECONNECTION:
                    break;
                case CONNECTING:
                    break;
                case DISCONNECTED:
                    break;
                case SERVICE_DISCOVERED:
                    break;
            }
        }

        /**
         * Используйте {@link Observe} для определения сообщений, которые вы хотите получить, и метод будет выполняться в потоке, указанном в {@link EasyBLEBuilder#setMethodDefaultThreadMode(ThreadMode)}
         */
        @Observe
        @Override
        public void onNotificationChanged(@NonNull Request request, boolean isEnabled) {
            if (request.getType() == RequestType.SET_NOTIFICATION) {
                if (isEnabled) {
                    Log.d("EasyBLE", "Уведомление включено");
                } else {
                    Log.d("EasyBLE", "Уведомление отключено");
                }
            } else {
                if (isEnabled) {
                    Log.d("EasyBLE", "Indication включено");
                } else {
                    Log.d("EasyBLE", "Indication отключено");
                }
            }
        }

        /**
        * Если {@link EasyBLEBuilder#setObserveAnnotationRequired(boolean)} установлено в false, вы будете получать сообщения независимо от того, используете ли вы аннотацию {@link Observe}. По умолчанию используется значение false, и методы выполняются в потоке, заданном в {@link EasyBLEBuilder#setMethodDefaultThreadMode(ThreadMode)}.
        */
        @Override
        public void ...
    }```

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

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

Введение

Простой фреймворк для Android Bluetooth Low Energy (BLE). Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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