Перейти к основному содержимому

Остановка поиска устройства

Запросите остановку предусмотренной прошивкой индикации поиска на подключённом устройстве.

Предварительные условия

Перед вызовом API убедитесь, что:

  • Устройство подключено и готово.
  • Устройство поддерживает протокол DeviceFindAPI.

Справочник API

Фреймворк

AIBuds.xcframework

Импорт

Swift
import AIBuds

Протокол

Метод stopFindDevice объявлен в DeviceFindAPI.

Swift
/// Controls the locate-device indication on a connected device.
///
/// This API operates on the device represented by the conforming object. It
/// does not perform Bluetooth discovery or scan for nearby devices.
public protocol DeviceFindAPI: DeviceAPI {
    /// Requests that the connected device stop its locate-device indication.
    /// - Parameters:
    ///   - completion: Called when command processing completes.
    ///     - success: `true` when the device accepted the stop command;
    ///       otherwise, `false`.
    ///     - error: The command or communication error, or `nil` on success.
    func stopFindDevice(_ completion: AIBudsCompletionHandler?)
}

Метод экземпляра

Запрашивает остановку индикации поиска на подключённом устройстве.

Swift
/// Requests that the connected device stop its locate-device indication.
/// - Parameters:
///   - completion: Called when command processing completes.
///     - success: `true` when the device accepted the stop command; otherwise,
///       `false`.
///     - error: The command or communication error, or `nil` on success.
func stopFindDevice(_ completion: AIBudsCompletionHandler?)

Параметры

ПараметрТипОписание
completionAIBudsCompletionHandler?Необязательный обработчик, вызываемый после обработки команды.

Параметры обратного вызова:

ИмяТипОписание
successBool / BOOLtrue, если устройство приняло команду остановки; иначе false.
errorNSError?Ошибка команды или связи; при успехе — nil.

Возвращаемое значение

Метод не возвращает значение напрямую. Результат передаётся обработчику завершения.

Примеры использования

Swift
import AIBuds

final class DeviceManager {
    weak var device: DeviceConvertible?

    func stopFindingDevice() {
        guard let device = device as? DeviceFindAPI else {
            print("Device does not support finding")
            return
        }

        device.stopFindDevice { success, error in
            guard success else {
                print("Failed to stop finding: \(error?.localizedDescription ?? "Unknown error")")
                return
            }

            print("Stop command accepted")
        }
    }
}

Обработка ошибок

Показывайте принятие команды остановки только после проверки success, а ошибки команды и связи берите из error. Не полагайтесь на фиксированные коды ошибок, если они не задокументированы для устройства.

Рекомендации

  1. Проверяйте соответствие протоколу: перед вызовом метода убедитесь в поддержке DeviceFindAPI.
  2. Храните состояние интерфейса локально: протокол не предоставляет свойство активности поиска.
  3. Обновляйте UI в главной очереди: направляйте обновления UIKit из обработчика завершения в главную очередь.

Примечания

  • Публичный API не определяет результат вызова остановки при неактивном поиске.
  • Реализация индикации поиска на конкретном устройстве не входит в контракт API.
  • Метод останавливает индикацию на устройстве, но не сигнал поиска на iPhone, которым управляет приложение.