자동차 앱

Android Auto용 내비게이션, 주차, 충전 앱을 빌드합니다.
최근 업데이트 현재 안정화 버전 다음 버전 후보 베타 버전 알파 버전
2021년 9월 1일 1.0.0 - 1.1.0-beta01 -

종속 항목 선언

자동차 앱 라이브러리에 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

dependencies {
    implementation "androidx.car.app:app:1.0.0"

    // For testing
    implementation "androidx.car.app:app-testing:1.1.0-beta01"
}

Kotlin

dependencies {
    implementation("androidx.car.app:app:1.0.0")

    // For testing
    implementation("androidx.car.app:app-testing:1.1.0-beta01")
}

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 의견을 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

버전 1.1.0

버전 1.1.0-beta01

2021년 9월 1일

androidx.car.app:app-*:1.1.0-beta01이 출시되었습니다. 버전 1.1.0-beta01에 포함된 커밋을 확인하세요.

모든 v1.1.0 기능(API 2 이상)이 Android Auto 6.7 이상과 완벽하게 호환됩니다. 자세한 내용은 개발 가이드를 참고하세요.

API 변경사항

  • 공개 인터페이스인 Manager를 삭제했습니다. (Ie381b)
  • 권한 요청에 맞춤 브랜드 배경을 설정할 수 있는 기능을 추가했습니다. (I74b76)
  • ScreenManager.getStackSize를 추가했습니다. (I0b16a)
  • 명시적으로 TestCarContext를 사용하는 ScreenController 생성자를 삭제했습니다. (Iefebc)

버그 수정

  • CarHardwareManager를 만들 때 API 수준을 확인하는 기능을 추가했습니다. (I48f9b)
  • API에서 잘못된 CarSpan 사용을 확인하는 기능을 추가했습니다. (I65ae6)
  • Screen이 생성 중 완료됨으로 표시되면 스택이 손상된 상태로 남는 문제를 해결했습니다. (I81b13)
  • CarAppExtender에 아이콘이 있는 작업이 있으면 CarNotificationManager.notify가 AutomotiveOS에 관한 오류를 기록하는 문제를 해결했습니다. (I3633d)
  • API 버전을 설정하기 위해 앱과 호스트를 위한 핸드셰이크 메서드를 추가했습니다. (I7d6f8)

버전 1.1.0-alpha02

2021년 7월 21일

androidx.car.app:app-*:1.1.0-alpha02가 출시되었습니다. 버전 1.1.0-alpha02에 포함된 커밋을 확인하세요.

새로운 기능

  • API 수준 3: 모델 및 제조사, 연료 수준, 기타 센서와 같은 차량의 하드웨어 데이터를 쿼리하는 데 사용할 수 있는 CarHardwareManager를 추가했습니다. 현재 이 기능은 공개 테스트 채널의 Android Auto 6.7 이상에만 제공됩니다. 데스크톱 환경에서 테스트하려면 별도로 출시되는 Desktop Head Unit의 새 버전이 필요합니다. 새로운 버전의 출시 시기에 관한 자세한 내용은 자동차용 Android 앱 테스트 페이지를 참고하세요.
  • 자세한 내용은 개발 가이드와 라이브러리 참조를 참고하고 API 수준 3과 호환되는 자동차 호스트에서 이러한 기능을 사용하는 방법은 디자인 가이드라인을 참고하세요.

API 변경사항

  • SessionControllerScreenController 수명 주기 메서드를 단일 moveToState 메서드에 통합했습니다. (I1ed00)
  • CarContext#getHostInfo()를 추가했습니다. (I8977e)
  • 지원 중단된 필드를 삭제했습니다. (I67168)
  • 생성자를 직접 노출하도록 SessionControllerScreenController를 업데이트했습니다. (Iabf22)
  • PinSignInMethod.BuilderProviderSignInMethod.Builder를 삭제했습니다. (I9f0cb)
  • AAOS에서 템플릿 앱 'for result'를 사용할 수 있도록 'setCarAppResult()'를 추가했습니다. (I37741)
  • CarHardware 인터페이스에 @MainThread로 주석을 추가했습니다. (Ib2f85)
  • OnCarDataListener에서 OnCarDataAvailableListener로 이름이 변경되었습니다. (I518ca)
  • CarInfo, Speed, Mileage 메서드 이름 및 javadoc을 업데이트했습니다. (I86672)
  • Toll에서 TollCard로 이름이 변경되었습니다. (I3e7c8)
  • 지원 중단되어 PinSignInMethod.getPinCode로 대체된 PinSignInMethod.getPin을 삭제했습니다. (I996ce)
  • OnInputCompletedListener를 삭제했습니다(InputCallback으로 대체됨). (Ib5be1)
  • PinSignInMethodString 대신 CharSequence를 사용하도록 변경되었습니다. (I275d5)

버그 수정

  • 자동차 하드웨어의 Javadoc를 수정합니다. (I2abbc)

외부 기여

알려진 문제

  • SignInTemplate에서 InputSignInMethod를 사용하면 자동차 호스트에 NullPointerException으로 이어질 수 있습니다. 이 문제는 라이브러리의 다음 릴리스에서 해결될 예정입니다. 문제를 해결하려면 앱의 Proguard 구성에 다음 줄을 포함합니다. -keep class androidx.car.app.model.signin.InputSignInMethod { *; }

버전 1.1.0-alpha01

2021년 6월 16일

androidx.car.app:app:1.1.0-alpha01, androidx.car.app:app-automotive:1.1.0-alpha01androidx.car.app:app-testing:1.1.0-alpha01이 출시되었습니다. 버전 1.1.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • API 수준 2: 차량이 주차되었을 때 로그인 흐름에 사용할 수 있는 새로운 SignInTemplateLongMessageTemplate입니다.
  • API 수준 2: NavigationTemplate 내 새로운 지도 상호작용 지원입니다.
  • API 수준 2: 자동차 화면 크기에 따라 표시할 여러 버전의 문자열을 앱이 제공할 수 있도록 하는 새로운 여러 길이의 텍스트 지원입니다.
  • 자세한 내용은 개발 가이드와 라이브러리 Javadoc을 참고하고 API 수준 2와 호환되는 자동차 호스트에서 이러한 기능을 사용하는 방법은 디자인 가이드라인을 참고하세요.

API 변경사항

  • 모든 *Callback 인터페이스 메서드를 기본값으로 설정하고 OnRequestPermissionsCallback에서 OnRequestPermissionsListener로 이름을 바꿨습니다. (Ib3ec9)
  • 불필요한 빌더 및 매개변수 클래스를 삭제하도록 androidx.car.app.hardware 클래스를 업데이트했습니다. (I67beb)
  • 연료, 배터리, 속도 등 자동차 관련 데이터에 액세스하는 androidx.car.app.hardware 클래스를 추가했습니다. (Iff3c9)
  • MessageTemplateActionStrip 지원을 추가했습니다. (Ida657)
  • MessageTemplatesetLoading을 추가했습니다. (I2a4b5)
  • ConnectionToCar에서 CarConnection으로 이름을 바꿨습니다. (Ife9bd)
  • 명시적인 PanModeDelegate를 반환하도록 NavigationTemplate을 변경했습니다. (I13877)
  • CarContext.requestPermissions의 매개변수 순서를 업데이트했습니다. (Ib890a)
  • 최소 자동차 API 수준을 androidx.car.api.minCarApiLevel로 정의하도록 메타데이터 키를 업데이트했습니다. (Ib0d41)
  • 자동차 연결 상태를 관찰할 수 있는 API를 만들었습니다. (Ifc935)
  • Action의 전환 버튼 설정 지원을 추가하고 화면 이동 모드 Action 유형을 추가했습니다. (Ica6af)
  • 자동차에서 알림 전송을 지원하는 CarNotificationManager를 만들었습니다. (I10d7a)
  • 호스트에서 목록 한도를 제공하는 ConstraintManager를 추가했습니다. (I8690e)
  • NavigationTemplate에 화면 이동 모드와 지도 액션 스트립 API를 추가했습니다. (I77aa6)
  • 내비게이션 앱을 위한 SurfaceCallback에 화면 이동 및 확대/축소 API를 추가했습니다. (Id5e9d)
  • CarAppApiLevel을 2로 업데이트했습니다. (Ic1540)
  • CarAppService에서 권한을 요청하는 기능을 추가했습니다. (I5421e)
  • 멀티 텍스트 API에 RequiresCarApi(2) 주석을 추가했습니다. (Iacb62)
  • 절반 목록 템플릿 제목에 여러 텍스트 변형을 허용했습니다. (Ib8df7)
  • 새로운 LongMessageTemplate을 추가했습니다(Car API 수준 2 필요). (Ic5cee)

버그 수정

  • 더 큰 자동차 화면을 고려하여 이미지 크기 요구사항을 업데이트했습니다. (I116dc)
  • 템플릿 본문에 작업을 3개 이상 추가하는 것을 허용하지 않습니다. (I32157)
  • 자동차 앱 라이브러리 세트 플래그에서 모든 PendingIntent 생성을 확인했습니다. (If84fe, b/186394900)
  • Row의 텍스트 변경사항을 새로고침으로 허용하도록 javadoc을 업데이트했습니다. (If3f9c)
  • 이제 androidx.activity:activity:1.2.0이 API 종속 항목입니다. (Id1cb9)
  • 본문에서 주차 전용 작업을 요구하도록 SignInTemplateLongMessageTemplate을 만들고 자동차가 주차된 경우에만 표시된다고 나타내도록 문서를 업데이트합니다. (Iddaa9)
  • 시작 중 Screen을 표시할 때 발생하는 예외 문제를 해결했습니다. (Ifcf40, b/184664896)
  • ForegroundCarColorSpan에서 맞춤 텍스트 색상을 허용했습니다. (I69e59)
  • ScreenON_DESTROY 후에 SessionON_DESTROY가 관찰되는 문제를 해결했습니다. (I52e01, b/183696617)
  • TravelEstimate의 남은 시간을 알 수 없는 시간으로 설정하는 것이 허용되는 시점에 관해 javadoc을 업데이트했습니다. (I99610, b/183632456)
  • 제목과 모든 맞춤 배경 색상에서 ForegroundColorSpan을 지원하도록 Action을 업데이트했습니다. (I578e4)
  • 실행자가 실행하기 전에 콜백이 삭제된 경우 NavigationManagerCallback#onStopNavigation을 실행하면 안 됩니다. (I7fc5e, b/181143772)
  • 앱이 lifecycle-common-java8의 종속 항목을 명시적으로 사용해야 하는 문제를 해결했습니다. (I8b8c8)

알려진 문제

  • SignInTemplate에서 사용자가 입력을 확인하려고 할 때 '입력' 아이콘 대신 '검색' 아이콘이 터치 키보드에 표시됩니다. 이 문제를 해결하려면 사용자가 입력란에 포커스가 있을 때 활성화되는 휴대전화 키보드에 액세스하면 됩니다.
  • Android Auto 버전 6.5에서는 SurfaceCallback의 화면 이동 및 확대/축소 콜백이 일부 터치 동작에서 잘못 호출될 수 있습니다.

자동차 앱 테스트 버전 1.0.0

버전 1.0.0-alpha01

2021년 3월 24일

androidx.car.app:app-testing:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.

이 버전은 이전 비공개 소스 테스트 라이브러리의 첫 번째 Jetpack 버전입니다. 테스트에서 이 라이브러리를 사용하는 방법은 샘플을 참고하세요.

새로운 기능

  • 모델 클래스의 컨트롤러가 삭제되었습니다. 이제 모델 getter가 빌더에 설정된 값의 유효성을 검사할 수 있는 공개 API 노출 영역에 포함됩니다.
  • 호스트와 연결된 전체 기간과 관련된 로직을 테스트할 수 있도록 이전 CarAppServiceController가 새 SessionController로 대체되었습니다.

버전 1.0.0

버전 1.0.0

2021년 4월 21일

androidx.car.app:app:1.0.0이 출시되었습니다. 버전 1.0.0에 포함된 커밋을 확인하세요.

1.0.0의 주요 기능

  • 4월 초 Google은 androidx.car.app:app:1.0.0-rc01을 사용하여 앱을 프로덕션 채널에 게시할 수 있다고 발표했습니다. Car App Library v1.0.0은 현재 안정화되어 Android Auto 6.1 이상과 완전히 호환됩니다.
  • 라이브러리를 사용하여 Android Auto용 내비게이션, 주차, 충전 앱을 빌드하는 자세한 방법은 개발 가이드를 참고하세요.

버그 수정

  • 시작 중 Screen을 표시할 때 발생하는 예외 문제를 해결했습니다. (70aae1, b/184664896)
  • ScreenON_DESTROY 후에 SessionON_DESTROY가 관찰되는 문제를 해결했습니다. (0ceecb, b/183696617)

버전 1.0.0-rc01

2021년 3월 24일

androidx.car.app:app:1.0.0-rc01이 출시되었습니다. 버전 1.0.0-rc01에 포함된 커밋을 확인하세요.

버그 수정

  • 콜백이 삭제된 후 NavigationManagerCallback#onStopNavigation이 호출되었던 경합 상태 버그를 수정했습니다. 이 버그는 콜백 실행기가 실제로 실행되기 전에 콜백이 삭제되면 발생합니다. (I7fc5e, b/181143772)
  • lifecycle-common-java8의 종속 항목을 명시적으로 가져오도록 앱에 요구하던 문제를 해결했습니다. (I8b8c8)
  • 앱이 이미 콜백을 삭제했을 때 stopNavigation 호출을 수신하면 발생하던 NullPointerException을 해결했습니다. (Ib8b89, b/181143772)
  • 앱의 수명 주기가 최소한 CREATED 상태에 있지 않으면 앱에 호출을 보내지 않도록 개선했습니다. (I86965, b/179800224, b/177921120)
  • 앱의 매니페스트에 지정된 최소 API 수준이 잘못되어 예외가 발생하고 그로 인해 호스트에서 ANR이 발생하는 문제를 해결했습니다. (Iffedd, b/174231592)

버전 1.0.0-beta01

2021년 2월 24일

androidx.car.app:app:1.0.0-beta01이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.

이 버전은 이전 비공개 소스 라이브러리의 최초 Jetpack 버전이며 Android Auto 6.1 이상과 호환됩니다. 라이브러리를 사용하여 자동차 앱을 빌드하는 자세한 방법은 개발 가이드를 참고하세요.

새로운 기능

버그 수정

  • 화면을 순차적으로 표시할 때 잘못된 Screen이 다시 시작되는 문제가 해결되었습니다. (b/177590791)