Ana içeriğe geç

Navigasyon Bilgilerini Gönderme

Güncel rota adımı için bir NavigationInfoModel oluşturup cihaza gönderin.

Ön Koşullar

  • Cihaz bağlıdır ve TurnByTurnNavigationAPI protokolüne uyar.
  • instruction ve roadName değerlerinin her biri en fazla 128 bayttır.
  • Mesafe ve süre için modelde belirtilen birimler kullanılır.

API Referansı

Framework

AIBuds.xcframework

Protokol

Swift
/// Turn by turn navigation API
protocol TurnByTurnNavigationAPI: DeviceAPI {
    /// Send navigation info
    /// - Parameters:
    ///   - info: Navigation info
    ///   - completion: A closure that is called when the operation completes.
    ///     - success: `true` if the operation was successful; otherwise `false`.
    ///     - statusCode: The status code returned by the device. `nil` if the operation failed.
    ///     - error: An `NSError` object that describes the error that occurred, or `nil` if the operation was successful.
    func sendNavigationInfo(
        _ info: NavigationInfoModel,
        completion: AIBudsStatusCodeCompletionHandler?
    )
}

API Referansındaki sendNavigationInfo öğesine bakın.

ÖzellikAnlamı
nextStepDistanceText300m veya 1.5km gibi gösterime hazır metin.
maneuverNavigasyon Manevraları tarafından tanımlanan raw değer.
instructionEn fazla 128 baytlık yönlendirme metni.
roadNameEn fazla 128 baytlık yol adı.
alertInfoİsteğe bağlı NavigationAlertInfoModel; Navigasyon Uyarıları bölümündeki değerleri ve parametre kurallarını kullanın.
mapProviderNavigationMapProvider tarafından tanımlanan raw değer.
transportModeNavigationTransportMode tarafından tanımlanan raw değer.
remainingTimeSaniye cinsinden kalan süre.
remainingDistanceMetre cinsinden kalan mesafe.

Kullanım Örnekleri

Swift
guard let device = device as? TurnByTurnNavigationAPI else { return }

let info = NavigationInfoModel()
info.nextStepDistanceText = "300m"
info.maneuver = NSNumber(value: NavigationManeuver.right.rawValue)
info.instruction = "Turn right"
info.roadName = "Market Street"
info.remainingTime = 420
info.remainingDistance = 1800

device.sendNavigationInfo(info) { success, statusCode, error in
    guard success else {
        print(error?.localizedDescription ?? "Navigation update failed")
        return
    }
    print("Navigation sent: \(statusCode?.stringValue ?? "Unavailable")")
}

Hata Yönetimi

Göndermeden önce bayt sınırlarını doğrulayın. Temel sonuç olarak success değerini kullanın ve cihazın statusCode değerini koruyun; genel SDK şu anda ayrı durum kodlarının anlamını belgelemez.