Я пытаюсь добавить функцию рекламодателя BLE в свое приложение. Хотя реклама BLE запускается нормально, но когда я пытаюсь остановить рекламу BLE, она не останавливает рекламодателя, т. е.
onAdvertisingSetStopped
Короче говоря, набор рекламы запустился нормально, но когда я пытаюсь остановить набор рекламы, он не останавливает набор рекламы, и требуемый метод обратного вызова не вызывается.>
Я пытаюсь добавить функцию рекламодателя BLE в свое приложение. Хотя реклама BLE запускается нормально, но когда я пытаюсь остановить рекламу BLE, она не останавливает рекламодателя, т. е. onAdvertisingSetStopped
override fun onAdvertisingSetStopped(advertisingSet: AdvertisingSet?) { super.onAdvertisingSetStopped(advertisingSet) Log.d(TAG, "onAdvertisingSetStopped called") } } [/code] Вот код для запуска рекламного набора. [code]fun startBleGattServer( ctx: Context, bluetoothManager: BluetoothManager, gattConfiguration: GattConfigurationWithServices?, callback: GattServerCallBack ) { try {
gattServerCallback = callback
if (!bluetoothManager.adapter.isEnabled) { gattServerCallback?.onStartFailure(this@GattServer.id,BluetoothAdapter.STATE_OFF) Log.w(TAG, "BluetoothAdapter not enabled,$gattServerCallback") return }
initBleAdvertiser(bluetoothManager.adapter) val advSetting = buildAdvSetting() val advData = buildAdvertiseData() val sResponseData = buildScanResponseData()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { logDebug("Starting adv set...") val advertisingSetParameters = buildAdvertisingSetParameters() bluetoothLeAdvertiser!!.startAdvertisingSet( advertisingSetParameters, AdvertiseData.Builder().setIncludeDeviceName(true).build(), null, null, null, mAdvertisingSetCallback, ) } else { // bluetoothLeAdvertiser?.startAdvertising( // advSetting, // advData, // sResponseData, // mAdvertiseCallback // ) Log.v(TAG, "Starting ble gatt server, version: ${Build.VERSION.SDK_INT}") } startGattServer(ctx, bluetoothManager, gattConfiguration) } catch (ex: Exception) { Log.e(TAG, "Error while starting ble gatt server") gattServerCallback?.onStartFailure(id, 11) // TODO ex.printStackTrace() } } [/code] Вот код остановки рекламного набора. [code]fun stopBleGattServer() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { logDebug("Stopping adv set...") bluetoothLeAdvertiser?.stopAdvertisingSet(mAdvertisingSetCallback) } else { bluetoothLeAdvertiser?.stopAdvertising(mAdvertiseCallback) }
//bluetoothLeAdvertiser = null bluetoothGattServer?.close() bluetoothGattServer = null gattServerCallback = null currentAdvertiseSet = null Log.d(TAG,"Ble Gatt server stopped, name: $name,id: $id") } [/code] Короче говоря, набор рекламы запустился нормально, но когда я пытаюсь остановить набор рекламы, он не останавливает набор рекламы, и требуемый метод обратного вызова не вызывается.>
Я пытаюсь добавить функцию рекламодателя BLE в свое приложение. Хотя реклама BLE запускается нормально, но когда я пытаюсь остановить рекламу BLE, она не останавливает рекламодателя, т. е.
onAdvertisingSetStopped
Я разрабатываю мобильное приложение на основе Bluetooth с низкой энергией (BLE) в Android Studio для связи с устройством ESP32. ESP32 выступает в качестве сервера BLE (периферийная), а мое приложение для Android действует как клиент (центральный)....
Я разместил несколько вопросов, которые в основном представляют собой один и тот же вопрос снова и снова, потому что я, честно говоря, не могу найти проблему. особая характеристика. Я использую набор BGX Silicon Labs Bluetooth, который подключен к...
Я использую API рекламы продукта Amazon, чтобы получить данные о книгах на основе заданного номера ISBN. Это работает нормально, я получаю большую часть информации, но для некоторых книг у меня есть проблема с редакционными обзорами. Похоже,...