디버깅 및 테스트

다이얼러에는 통합 디버깅 및 테스트 프레임워크가 적용되어 있어 통화 지원 기기 없이도 다이얼러 앱 기능을 검증할 수 있습니다. 따라서 블루투스 및 모바일 서비스가 있는 연결된 휴대전화가 필요하지 않습니다. 이 다이얼러 테스트 프레임워크(DTF)는 다음 프로세스를 간소화합니다.

  • 아이디어를 빠르게 검증하기 위해 실제 기기를 설정하는 데는 일반적으로 시간이 걸립니다.
  • 다중 통화 기능을 테스트하려면 SIM 카드가 장착된 휴대전화가 최소 3대 필요하고 이 중 2대는 전화를 거는 데만 사용됩니다.
  • 다이얼러 및 종속 항목 디버깅

다이얼러의 기능은 텔레콤, 텔레포니, 블루투스 핸즈프리 프로필(HFP)을 비롯한 여러 기술 스택에 의존하므로 이러한 종속 항목에서 발생하는 버그와 문제로 인해 다이얼러 결함이 발생할 수 있습니다. DTF를 사용하면 다이얼러가 이러한 종속 항목과는 별개로 실행될 수 있습니다.

기능

DTF는 다음 기능을 제공합니다.

  • 전화 걸기. Android 디버그 브리지(adb) 브로드캐스트를 사용하는 터미널을 통해 통화 지원 기기가 없어도 전화를 걸고 받습니다.
  • 모의 통화. 통화 기능이 모의 처리됩니다. 여기에는 대기, 음소거, 병합, 연결 해제가 포함됩니다.

DTF 사용

참고: DTF는 Android 11 이상에서만 사용할 수 있습니다.

DTF를 사용하려면 다음 안내를 따르세요.

  1. 다음과 같이 CarDialerAppForTesting 빌드 변형을 빌드하고 설치합니다.
    cd %rRepoRoo%/packages/apps/Car/Dialer
    
    m CarDialerAppForTesting
    
    adb install %rRepoRoo%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
    

    결과적으로 CarDialerAppForTesting이 테스트 기기의 원래 다이얼러 앱을 대체합니다.

    CarDialerAppForTesting은 실제 기기에서 작동하지 않습니다. 실제 기기로 테스트하려면 CarDialerApp.apk를 재설치하세요.

명령어

다음 adb 명령어는 다이얼러를 처음 실행한 후에만 작동하고 broadcast receiver를 초기화해야 합니다. 다이얼러를 실행한 후 가짜 블루투스 기기를 연결해야 합니다. 다음 (설정) 기기 연결 명령어를 사용하면 됩니다.

(설정) 기기 연결

가짜 블루투스를 다이얼러에 연결하고 모든 통화 관련 명령어에 액세스하려면 먼저 호출해야 합니다.

기기를 연결하려면 다음을 실행하세요.

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "connect"

참고: 가짜 블루투스 기기가 연결된 후에만 다음 각 명령어를 사용할 수 있습니다.

발신 전화 걸기

발신 전화를 걸려면 다음을 실행하세요.

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "addCall" --es "id" "4085524874"

수신 전화 받기

수신 전화를 받으려면 다음을 실행하세요.

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "rcvCall" --es "id" "4085524874"

통화 종료

통화를 종료하려면 다음을 실행하세요.

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "endCall" --es "id" "4085524874"

현재 통화 대기

현재 통화를 대기 상태에 두려면 다음을 실행하세요.

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "holdCall"

현재 통화 대기 취소

현재 통화를 대기 취소하려면 다음을 실행하세요.

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"

통화 병합

기본 및 보조 통화를 다자간 통화로 병합합니다. 이 명령어는 기본 및 보조 통화가 모두 존재할 때만 작동합니다. 기존 다자간 통화는 단일 항목으로 간주됩니다.

통화를 병합하려면 다음을 실행하세요.

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"

모든 통화 지우기

통화 목록에서 모든 통화를 삭제하려면 다음을 실행하세요.

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "clearAll"

에뮬레이터 빌드

경우에 따라 개발자는 에뮬레이터에서 UI 변경사항을 테스트하는 것이 좋습니다. 이 경우 CarDialerAppEmulatorBuild는 더 강력한 DTF에 비해 간소화된 설정과 제한된 기능을 제공합니다.

테스트 데이터

다이얼러가 실행되면 블루투스 오류 페이지가 우회되고 TelecomActivity의 기본 콘텐츠가 표시됩니다. 연락처와 통화 기록은 로컬 기기에 표시됩니다. 개발자는 스톡 연락처 앱을 사용하여 테스트 연락처를 만들거나 .vcf 파일을 가져올 수 있습니다.

통화 모의

수신 전화를 모의하려면 Android Emulator를 사용하여 Telnet 명령어를 전송합니다. 자세한 내용은 Android Emulator에서 앱 실행에뮬레이터 콘솔 명령어 전송을 참고하세요.

telnet localhost 5554
gsm call xxx-xxx-xxxx

다이얼러 앱에서 전화를 걸거나 통화 인텐트를 브로드캐스트하면 발신 전화가 시작됩니다.

adb shell am start -a android.intent.action.CALL tel:xxx-xxx-xxxx