본문으로 건너뛰기

기기 찾기 개요

찾기 API는 연결된 기기가 찾기 알림을 내도록 하거나, 기기가 앱에 iPhone 찾기를 요청했을 때 응답하는 데 사용합니다.

두 흐름은 방향이 반대이며 서로 다른 API를 사용합니다.

흐름시작 주체앱에서 처리할 작업완료 신호
기기 찾기호스트 앱DeviceFindAPI를 통해 연결된 기기의 펌웨어 정의 찾기 알림을 시작하거나 중지합니다.명령 completion이 접수 여부를 보고합니다. 지원되는 기기는 이후 deviceDidReportFound를 호출할 수 있습니다.
iPhone 찾기연결된 기기delegate 콜백에 응답하여 iPhone에서 소리, 진동 또는 UI를 시작하거나 중지합니다.사용자가 iPhone을 찾으면 FindPhoneStateReportingAPI를 통해 완료를 보고합니다.

기능 개요

AI를 활용해 구현

AI로 구현

AI로 이 워크플로 구현

공식 “AIBuds 기기 찾기 구현” 스킬을 사용해 앱에 맞게 구현하세요.

https://docs-aibuds.github.io/ko/skills/implement-aibuds-find-workflow을 읽고 지침을 따르세요. 이 스킬로 “AIBuds 기기 찾기 구현”을 이 iOS 프로젝트에 구현하고 검증하세요.
공식 스킬 보기

시작하기

찾기 기능은 다음 순서로 사용하세요.

  1. 기기 연결 — 대상 AIBuds 기기를 사용할 수 있는 상태로 연결합니다.
  2. 방향 선택 — 앱에서 기기를 찾을지, 기기가 보낸 iPhone 찾기 요청에 응답할지 결정합니다.
  3. 프로토콜 및 기능 지원 확인 — 기기 찾기 명령에는 DeviceFindAPI를 사용하고 supportsFindDevice == true인지 확인합니다. iPhone을 찾았음을 보고할 때는 FindPhoneStateReportingAPI를 사용합니다.
  4. 올바른 종료 신호 처리 — 명령이 접수되었다는 응답을 실제 기기나 iPhone을 찾았다는 의미로 해석하지 마세요.

핵심 개념

기기 찾기

  • 기기 찾기 시작: 연결된 기기에 찾기 알림 시작을 요청합니다.
  • 기기 찾기 중지: 연결된 기기에 찾기 알림 중지를 요청합니다.
  • 기기 발견 이벤트: 지원되는 경우 deviceDidReportFound(_:)은 기기가 별도로 보내는 종료 이벤트입니다.

DeviceFindAPI는 이미 연결된 기기에서 동작합니다. 관련 컨트롤을 표시하거나 명령을 보내기 전에 supportsFindDevice를 확인하세요. 연결된 기기가 이 기능을 보고하지 않으면 속성은 false가 됩니다. Bluetooth 기기 검색이나 주변 기기 스캔은 수행하지 않습니다.

iPhone 찾기

  • deviceDidRequestStartFindingPhone(_:)은 앱에 iPhone 측 알림 시작을 요청합니다.
  • deviceDidRequestStopFindingPhone(_:)은 앱에 해당 알림 중지를 요청합니다.
  • 사용자가 iPhone을 찾으면 notifyPhoneFound(_:)을 호출하여 요청한 기기에 완료를 보고합니다.

프로토콜 참고

기기 찾기 명령은 DeviceFindAPI를 통해 사용합니다.

Swift
guard let device = device as? DeviceFindAPI else {
    print("Device does not support DeviceFindAPI")
    return
}
guard device.supportsFindDevice else {
    print("Connected device does not support find-device commands")
    return
}

반대 방향인 iPhone 찾기 흐름에서는 기기의 요청을 받은 뒤 FindPhoneStateReportingAPI를 사용합니다.

Swift
guard let reporter = device as? FindPhoneStateReportingAPI else {
    print("Device cannot receive an iPhone-found report")
    return
}

권장 사항

  1. 두 방향 구분: iPhone 측 알림 구현에 DeviceFindAPI를 사용하지 마세요.
  2. 프로토콜 및 기능 지원 확인: 선택한 흐름에 필요한 프로토콜을 확인하고, 기기 찾기 컨트롤을 표시하기 전에 supportsFindDevice를 확인하세요.
  3. 접수와 완료 구분: 성공 completion은 명령 처리가 완료되었음을 의미하며 대상을 실제로 찾았다는 의미는 아닙니다.
  4. 중지 경로 제공: 사용자가 실행 중인 기기 또는 iPhone 알림을 중지할 수 있게 하세요.
  5. 메인 큐에서 UI 변경: 콜백에서 수행하는 UIKit 변경은 메인 큐로 전달하세요.

참고

  • 기기 찾기 명령을 사용하려면 대상 기기가 연결되어 통신 가능한 상태여야 합니다.
  • 기기 측 소리, 진동 또는 기타 알림 동작은 펌웨어에서 정의합니다.
  • iPhone 찾기 요청에 사용하는 iPhone 측 소리, 진동 및 UI는 앱에서 구현합니다.
  • supportsFindDevice == false는 기능이 지원되지 않거나 기기가 해당 기능을 보고하지 않았음을 의미할 수 있습니다.
  • 두 프로토콜 모두 신뢰할 수 있는 활성 상태나 지속 시간 속성을 제공하지 않습니다.