방송 라디오 스택은 그림 1과 같은 구성요소로 이루어져 있습니다.
라디오 참조 앱
라디오 컨트롤을 구현하는 방법에 관한 자세한 내용은 다음을 참고하세요. 라디오 컨트롤 구현
참조 역할을 하는 샘플 Java 라디오 앱 (packages/apps/Car/Radio
)
있습니다. 앱 서비스가 시작되면 라디오 관리자에게 라디오 튜너를 열도록 요청합니다. 그런 다음
앱은 라디오 튜너에 요청을 보낼 수 있습니다. 예를 들어 특정 라디오 채널에 맞추거나 주파수,
재생 가능한 다음 라디오 채널을 탐색할 수 있습니다. 앱이 라디오 관리자에서 업데이트를 수신하고
라디오의 라디오 튜너에는 현재 프로그램 정보, 라디오 프로그램 목록, 구성 및
공급업체에서 정의한 매개변수입니다. 참조 라디오 앱은 AM 및 FM 라디오만 지원합니다. OEM은
라디오 앱을 교체합니다.
라디오 관리자
앱이 라디오 관리자에게 튜너를 열도록 요청하면 라디오 관리자는
(frameworks/base/core/java/android/hardware/radio/RadioManager.java
)가 다음을 요청합니다.
튜너 세션을 연 후 라디오 튜너에서 세션을 래핑하는 방송 라디오 서비스 (BRS)
(frameworks/base/core/java/android/hardware/radio/RadioTuner.java
) - 반환됩니다.
하세요.
라디오 튜너는 라디오 앱에서 호출할 수 있는 API (예: 미세 조정, 단계, 취소)를 정의합니다.
BRS에 요청을 보냅니다 라디오에 정의된 콜백 메서드 (RadioTuner.Callback
)
튜너는 현재 프로그램 정보, 프로그램 등 방송 라디오 HAL에 관한 업데이트를 전송합니다.
목록, 공급업체에서 정의한 매개변수까지 작동합니다.
방송 라디오 서비스
방송 라디오 서비스
(frameworks/base/services/core/java/com/android/server/broadcastradio
)는 클라이언트입니다.
방송 라디오 HAL 서비스입니다. BRS는 방송 라디오로 여러 라디오 관리자를 조율합니다
HAL. BRS는
HAL 인터페이스 정의 언어 (HIDL) 및
Android 인터페이스 정의 언어 (AIDL) 브로드캐스트
무선 HAL입니다. AIDL HAL 서비스가 있는 경우 BRS가 AIDL HAL에 연결됩니다.
그렇지 않은 경우에는 서비스가 HIDL HAL에 연결됩니다. BRS가 라디오 모듈 생성
사용할 수 있는 각 HAL 인스턴스 (예: AM, FM, DAB)
각 라디오 관리자는 BRS에 튜너 세션을 생성하도록 요청할 수 있습니다. 해당 무선 모듈과 통신합니다. 각 튜너 세션은 미세 조정, 단계 및 취소 (HAL 인터페이스에 정의됨)를 사용하여 해당하는 방송 라디오 HAL 인스턴스를 반환합니다. 한 튜너 세션이 HAL에서 콜백을 수신할 때 현재 프로그램 정보, 프로그램 목록, 구성 플래그 및 업데이트 관련 콜백이 동일한 네트워크에 연결된 모든 라디오 튜너로 라디오 모듈.
방송 라디오 HAL
방송 라디오의 HIDL 및 AIDL 인터페이스와 둘째, 방송 라디오 HAL 인터페이스.