Wear

Wear OS by Google 스마트시계용 애플리케이션을 만듭니다.

이 표에는 androidx.wear 그룹의 모든 아티팩트가 나열됩니다.

아티팩트 현재 안정화 버전 다음 버전 후보 베타 버전 알파 버전
Wear 1.1.0 - - 1.2.0-alpha13
wear-input 1.0.0 1.1.0-rc01 - -
wear-complications-data - - - 1.0.0-alpha19
wear-complications-provider - - - 1.0.0-alpha17
wear-watchface - - - 1.0.0-alpha19
wear-watchface-client - - - 1.0.0-alpha19
wear-watchface-complications-rendering - - - 1.0.0-alpha19
wear-watchface-data - - - 1.0.0-alpha19
wear-watchface-editor - - - 1.0.0-alpha19
wear-watchface-style - - - 1.0.0-alpha19
wear-ongoing - - 1.0.0-beta01 -
wear-phone-interactions - - - 1.0.0-alpha07
wear-remote-interactions - - - 1.0.0-alpha06
이 라이브러리는 2021년 8월 4일에 최종 업데이트되었습니다.

종속 항목 선언

Wear의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

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

Groovy

dependencies {
    implementation "androidx.wear:wear:1.1.0"

    // Add support for wearable specific inputs
    implementation "androidx.wear:wear-input:1.0.0"
    implementation "androidx.wear:wear-input-testing:1.0.0"

    // Use to implement wear watchface complications
    implementation "androidx.wear:wear-complications-provider:1.0.0-alpha18"

    // Use to implement wear watchfaces
    implementation "androidx.wear:wear-watchface:1.0.0-alpha18"

    // Use to implement a watchface style and complication editor
    implementation "androidx.wear:wear-watchface-editor:1.0.0-alpha18"

    // Use to implement wear ongoing activities
    implementation "androidx.wear:wear-ongoing:1.0.0-alpha06"

    // Use to implement support for interactions from the Wearables to Phones
    implementation "androidx.wear:wear-phone-interactions:1.0.0-alpha06"
    // Use to implement support for interactions between the Wearables and Phones
    implementation "androidx.wear:wear-remote-interactions:1.0.0-alpha05"
}

Kotlin

dependencies {
    implementation("androidx.wear:wear:1.1.0")

    // Add support for wearable specific inputs
    implementation("androidx.wear:wear-input:1.0.0")
    implementation("androidx.wear:wear-input-testing:1.0.0")

    // Use to implement wear watchface complications
    implementation("androidx.wear:wear-complications-provider:1.0.0-alpha18")

    // Use to implement wear watchfaces
    implementation("androidx.wear:wear-watchface:1.0.0-alpha18")
}

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

의견

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

새로운 문제 제출하기

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

Wear Ongoing 및 Interactions 버전 1.0.0

Wear-Ongoing 버전 1.0.0-beta01

2021년 8월 4일

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

API 변경사항

  • 이제 OngoingActivity.Builder의 일부 setter에서 setter 및 getter의 대칭과 일관성을 위해 null 인수를 허용합니다. (I17ee5)

Wear-Phone-Interactions 버전 1.0.0-alpha07

2021년 8월 4일

androidx.wear:wear-phone-interactions:1.0.0-alpha07이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.

API 변경사항

  • WearTypeHelper.isChinaDevice 이름이 WearTypeHelper.isChinaBuild로 변경되었습니다. (I47302)
  • 기기 유형(RoW/China)에 따라 redirect_uri를 자동으로 선택하도록 RemoteAuthClient 라이브러리를 업데이트했습니다. (I38866)
  • BridgingConfig를 번들로 또는 번들에서 변환할 때 ClassCastException으로 인해 실패하는 버그를 수정했습니다. BridgingManagerService 클래스의 단위 테스트를 추가했습니다. (I68ecb)

Wear-Remote-Interactions 버전 1.0.0-alpha06

2021년 8월 4일

androidx.wear:wear-remote-interactions:1.0.0-alpha06이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.

Wear-Phone-Interactions 버전 1.0.0-alpha06

2021년 7월 21일

androidx.wear:wear-phone-interactions:1.0.0-alpha06이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.

API 변경사항

  • 이제 BridgingManagerSeviceBinder 클래스는 Service의 서브클래스이고 BridgingManagerSevice로 이름이 바뀌었습니다. (I9fca2)
  • RemoteAuthClient.Callback.onAuthorizationError 메서드가 OAuthRequest 매개변수를 포함하도록 변경되었습니다. 이제 콜백을 요구하는 메서드에서는 콜백 실행기가 함께 실행되어야 합니다. (I35e11)

버그 수정

  • 보다 문서화된 매개변수와 가능한 경우 속성을 사용하여 인증 API를 좀 더 명확하게 만들었습니다. (I12287)

Wear-Phone-Interactions 버전 1.0.0-alpha05

2021년 6월 30일

androidx.wear:wear-phone-interactions:1.0.0-alpha05가 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.

버그 수정

  • BridgingConfig.Builder의 생성자에 전달해야 하는 문서화된 매개변수입니다.

Wear-Ongoing 버전 1.0.0-alpha06

2021년 6월 2일

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

API 변경사항

  • Ongoing Activity에 Title 필드를 추가합니다. (I7a405)

버그 수정

  • SerializationHelper.copy()는 이제 정보의 방어적 복사본을 만듭니다. (I8b276).
  • setCategory 문서가 개선되었습니다. (Iff01f)

Wear Ongoing 버전 1.0.0-alpha05

2021년 5월 18일

androidx.wear:wear-ongoing:1.0.0-alpha05가 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.

API 변경사항

  • 이제 OngoingActivity에 빌더를 통해 직접 설정된 모든 값(또는 연결된 알림에서 가져온 기본값)을 검색하는 getter가 있습니다. (Id8ac8)

    • 새 클래스 Status가 이제 OngoingActivity의 상태를 만드는 데 사용됩니다.
    • OngoingActivityDataOngoingActivityStatus가 더 이상 공개 API의 일부가 아닙니다.
  • TextStatusPartTimerStatusPart 클래스가 더 이상 공개 API의 일부가 아닙니다. (I57fb6)

    • 정적 텍스트로 Part를 만들려면 Status.TextPart를 사용합니다.
    • 스톱워치(카운트업)로 Part를 만들려면 Status.Stopwatch를 사용합니다.
    • 타이머(카운트다운)로 Part를 만들려면 Status.Timer을 사용합니다.

Wear-Ongoing 버전 1.0.0-alpha04

2021년 5월 5일

androidx.wear:wear-ongoing:1.0.0-alpha04가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.

API 변경사항

  • 이제 OngoingActivity에서 fromExistingOngoingActivity 메서드를 recoverOngoingActivity라고 합니다.
  • 이제 OngoingActivity에는 이전에 OngoingActivityData에서만 사용할 수 있었던 getter 메서드의 전체 집합이 있습니다. (I0ee4d)

Wear-Remote-Interactions 버전 1.0.0-alpha05

2021년 7월 21일

androidx.wear:wear-remote-interactions:1.0.0-alpha05가 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.

API 변경사항

  • 다른 기기(예: 시계에서 휴대전화로)에서 인텐트를 여는 데 사용할 수 있는 RemoteIntentHelper 클래스(이전에는 웨어러블 지원 라이브러리의 RemoteIntent)가 추가되었습니다. (I1d7e0)

  • PlayStoreAvailability 클래스가 AndroidX 라이브러리에서 삭제되었습니다. 연결된 휴대전화에서 Play 스토어를 사용할 수 있는지 확인하려면 연결된 휴대전화가 Android 휴대전화인지 androidx.phone.interactions.PhoneTypeHelper.getPhoneDeviceType 메서드를 사용하여 확인합니다. 그런 다음 androidx.wear.utils.WearTypeHelper.isChinaDevice 메서드를 사용하여 연결된 휴대전화가 중국 기기인지 확인합니다. 휴대전화가 Android 휴대전화이고 중국 기기가 아니면 Play 스토어를 사용할 수 있습니다. (Ie7dec)

Wear-Phone-Interactions 버전 1.0.0-alpha04

2021년 4월 7일

androidx.wear:wear-phone-interactions:1.0.0-alpha04가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.

API 변경사항

  • 새 라이브러리가 Wearable 지원 라이브러리 구현과 하위 호환되도록 ErrorCode 상수를 업데이트했습니다.

버그 수정

  • OAuth 세션을 시작할 때 새 OAuth API로 인해 발생하는 예외를 해결했습니다.

Wear-Remote-Interactions 버전 1.0.0-alpha03

2021년 4월 7일

androidx.wear:wear-remote-interactions:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.

API 변경사항

  • 정적 메서드가 있는 동반 객체를 포함하는 클래스가 되도록 PlayStoreAvailability를 변경했습니다. 사용법은 동일합니다.

버그 수정

  • 실제 HTML 문자가 포함된 샘플 코드가 올바르게 표시되도록 WatchFaceConfigIntentHelper의 요약 문서를 수정했습니다.

Wear-Ongoing Wear-Phone-Interactions 버전 1.0.0-alpha03

2021년 3월 10일

androidx.wear:wear-ongoing:1.0.0-alpha03androidx.wear:wear-phone-interactions:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.

새로운 기능

  • Wearable 지원 라이브러리에서 AndroidX로 OAuthClient를 이전합니다. 이 이전된 클래스는 RemoteAuthClient로 이름이 바뀌며, 웨어러블 기기에서 원격 인증하는 기능과 OAuth PKCE 확장 프로그램 추가 기능을 지원합니다. 통신용 추가 핸들러와 도우미 클래스가 제공됩니다.
  • 이제 진행 중인 활동은 새 OngoingActivity.Builder 생성자를 사용하여 태그가 있는 알림에 연결될 수 있습니다.

API 변경사항

  • Ongoing Activities 라이브러리에 알림 태그 지원을 추가했습니다. (I653b4)
  • OAuthClient를 Wear 지원 라이브러리에서 AndroidX로 이전하고 OAuth PKCE 확장 프로그램 지원을 추가합니다. (I3eaaa)

Wear-Remote-Interactions 버전 1.0.0-alpha02

2021년 3월 10일

androidx.wear:wear-remote-interactions:1.0.0-alpha02가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.

새로운 기능

  • PlayStoreAvailability 클래스를 Wearable 지원 라이브러리에서 AndroidX로 이전하여 휴대전화에서 Play 스토어를 사용할 수 있는지 확인하는 API를 제공합니다.

버그 수정

  • PlayStoreAvailability 클래스를 Wearable 지원 라이브러리에서 AndroidX로 이전합니다. (I69bfe)

버전 1.0.0-alpha02

2021년 2월 10일

androidx.wear:wear-ongoing:1.0.0-alpha02androidx.wear:wear-phone-interactions:1.0.0-alpha02가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.

API 변경사항

  • 더 복잡한 상태에 관한 지원이 추가되었습니다. 이는 템플릿의 자리표시자를 채우는 데 사용되는 하나 이상의 템플릿과 연속된 부분으로 구성됩니다. 이제 OngoingActivityStatus에는 하나의 부분(텍스트 또는 타이머)만 사용하여 단순한 상태를 만드는 정적 메서드와 더 복잡한 상태를 만드는 빌더가 있습니다. (I1fe81)
  • BridgingManager와 BridgingConfig 클래스를 Wear 지원 라이브러리에서 AndroidX로 이동하여 런타임에 알림을 사용 설정/중지하고 연결 모드에서 제외되는 알림 태그를 선택적으로 설정하는 API를 제공합니다. (I3a17e)

버전 1.0.0-alpha01

2021년 1월 27일

androidx.wear:wear-ongoing:1.0.0-alpha01, androidx.wear:wear-phone-interactions:1.0.0-alpha01androidx.wear:wear-remote-interactions:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.

API 변경사항

  • Ongoing Activities 라이브러리를 새 하위 라이브러리 wear-ongoing으로 이전합니다. 이제 클래스가 androidx.wear.ongoing 패키지(이전에는 androidx.wear.ongoingactivities)에 있습니다. (I7c029)

  • Wearables에서 Phones로의 상호작용을 지원하는 클래스를 포함하는 새 지원 라이브러리를 만듭니다. Wearable 지원 라이브러리에서 이전된 클래스로 초기에 채워집니다. (Id5180)

  • PhoneDeviceType 클래스를 Wearable 지원 라이브러리에서 AndroidX로 이전합니다. 이전된 클래스는 PhoneTypeHelper로 이름이 바뀌고 Wearable 기기 전용으로만 사용하도록 현재 시계가 페어링된 휴대전화 유형을 판단하는 도우미 메서드를 제공합니다. (Ibd947)

  • Wearables와 Phones 간의 상호작용을 지원하는 클래스를 포함하는 새 지원 라이브러리를 만듭니다. Wearable 지원 라이브러리에서 이전된 클래스로 초기에 채워집니다. (I9deb4)

  • WatchFaceCompanion 클래스를 Wearable 지원 라이브러리에서 AndroidX로 이전합니다. 이전된 클래스는 WatchFaceConfigIntentHelper로 이름이 바뀌고 휴대전화의 컴패니언에서 시계 모드 구성 활동의 ID와 구성요소 이름을 지정하는 도우미 함수를 제공하며 웨어러블 기기에서 시계 모드를 구성하는 데 로컬로 사용할 수도 있습니다. (Ia455f)

Wear Complications 및 Watchface 1.0.0

버전 1.0.0-alpha19

2021년 8월 4일

androidx.wear:wear-*:1.0.0-alpha19가 출시되었습니다. 버전 1.0.0-alpha19에 포함된 커밋을 확인하세요.

API 변경사항

  • WatchFaceMetadataClient.createWatchFaceMetadataClient를 위한 ListenableFuture 래퍼를 제공하는 ListenableWatchFaceMetadataClient.listenableCreateWatchFaceMetadataClient를 추가했습니다. (I5fa37)
  • 이제 UserStyleOption.getOptionForId는 바이트 배열 대신 UserStyleOption.Id를 허용합니다. (I469be)
  • 상수 BooleanOption.TRUEBooleanOption.FALSE를 제공하고 인스턴스 생성을 허용하지 않습니다. (I46e09)
  • 이제 RemoteException을 발생시킬 수 있는 wear-watchface-client의 메서드가 적절하게 주석 처리됩니다. (Ib8438)
  • 일관성을 위해 EditorSession.createOnWatchEditingSession의 이름이 createOnWatchEditorSession으로 변경되었으며, 이제 createHeadlessEditingSessioncreateHeadlessEditorSession으로 변경되었습니다. guava 래퍼의 이름도 변경되었습니다. (I1526b)
  • 이제 EditorSession이 인터페이스가 되었으며 ListenableEditorSession.commitChangesOnClose가 올바르게 위임되었습니다. (I7dc3e)
  • 이제 충돌하는 ID가 있는 설정 또는 옵션을 지닌 모든 사용자 스타일 스키마가 거부됩니다. (Ic2715)
  • UserStyleSetting.Id를 허용하는 오버로드된 UserStyle.get이 추가되었습니다. (I2aa0f)

버전 1.0.0-alpha18

2021년 7월 21일

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

API 변경사항

  • ComplicationHelperActivityandroidx.wear:wear-watchface 라이브러리로 이동했습니다. (I39e76)
  • 일관성과 명확성을 위해 ComplicationProviderComplicationDataSource로 이름이 바뀌었고 이름에 Provider가 포함된 모든 클래스는 유사한 이름으로 바뀌었습니다. (Iaef0b)
  • CanvasComplication.isHighlightedRenderParameters.pressedComplicationSlotIds로 이동되었습니다. 이는 CanvasComplication을 스테이트리스(Stateless)로 만들기 위한 조치입니다. 이 변경사항을 지원하기 위해 이제 CanvasComplication.renderslotId를 매개변수로 사용하고 ComplicationSlotGlesTextureComplication에 전달합니다. (I50e6e)
  • EditorRequestheadlessDeviceConfig에 추가되었습니다. null이 아닌 경우 이 매개변수는 대화형 인스턴스에 따라 작동하는 대신 EditorSession을 지원하는 헤드리스 인스턴스를 구성하는 데 사용됩니다. 이렇게 하면 편집기가 기존 시계 화면이 아닌 다른 시계 화면에서 호출될 수 있습니다. (I0a820)
  • 실험용 WatchFaceMetadataClient가 추가되었습니다. UserStyleSchema와 같은 정적 시계 화면 메타데이터와 ComplicationSlots에 관한 수정된 세부정보를 효율적으로 검색할 수 있습니다. (I6bfdf)
  • CanvasRenderer.uiThreadInit의 이름이 init으로 변경되었습니다. (I6fff9)
  • EditorRequest의 새 선택적 매개변수인 PreviewScreenshotParams가 추가되었습니다. 이 매개변수는 관련 매개변수와 함께 커밋 시 미리보기 스크린샷을 촬영하도록 EditorSession에 지시합니다. 미리보기 이미지는 EditorState.previewImage에 노출됩니다. (Ic2c16)

버그 수정

  • 개발자는 더 이상 자체 매니페스트에 ComplicationHelperActivity를 추가할 필요가 없습니다. (I6f0c2)

버전 1.0.0-alpha17

2021년 6월 30일

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

새로운 기능

  • GlesRenderer에서 makeUiThreadContextCurrentmakeBackgroundThreadContextCurrentRunnable을 허용하는 runUiThreadGlCommandsrunBackgroundThreadGlCommands에 의해 대체됩니다. 라이브러리는 지정된 시간에 실행 가능한 하나의 GL 명령어만 실행하도록 합니다.

  • UiThread 초기화를 더 쉽게 만들기 위해 렌더링을 호출하기 전에 UiThread에서 한 번 호출되는 CanvasRenderer.uiThreadInit을 추가했습니다. 또한 RendererCanvasComplication이 상태를 더 쉽게 공유할 수 있도록 하는 onRendererCreatedCanvasComplication에 추가했습니다.

  • 명확성을 위해 Complication 이름을 ComplicationSlot으로 바꾸고 사용 방식에 따라 complicationId 이름을 complicationSlotId 또는 complicationInstanceId로 바꾸었습니다.

API 변경사항

  • 명확성을 위해 Complication 이름을 ComplicationSlot으로 바꾸고 사용 방식에 따라 complicationId 이름을 complicationSlotId 또는 complicationInstanceId로 바꾸었습니다. Complication을 사용하는 클래스도 비슷하게 이름이 바뀌었습니다. 예를 들어, ComplicationsManager는 이제 ComplicationSlotsManager라고 합니다. (I4da44)
  • GlesRenderer에서 makeUiThreadContextCurrentmakeBackgroundThreadContextCurrentRunnable을 허용하는 runUiThreadGlCommandsrunBackgroundThreadGlCommands에 의해 대체됩니다. 이러한 함수는 렌더 runBackgroundThreadGlCommandsonUiThreadGlSurfaceCreated 외부에서 GL 호출을 해야 하는 경우에만 필요합니다. 이는 동일한 프로세스에 있지만 잠재적으로는 다른 시계 모드에서 가져온 자체 컨텍스트를 사용하는 GlesRenderer가 여러 개 있을 수 있기 때문에 필요합니다. 또한 공유된 현재 GL 컨텍스트에 관한 액세스도 이제 동기화됩니다. (I04d59)
  • 렌더링을 호출하기 전에 UiThread에서 한 번 호출되는 CanvasRenderer.uiThreadInit을 추가했습니다. 또한 명확성을 위해 GlesRenderer의 onGlContextCreatedonBackgroundThreadGlContextCreated로, onGlSurfaceCreatedonUiThreadGlSurfaceCreated로 이름을 바꾸었습니다. (If86d0)
  • HeadlessWatchFaceClientInteractiveWatchFaceClientgetComplicationsSlotStategetComplicationSlotsState로 이름을 바꾸었습니다. ComplicationSlot에서 createRoundRectComplicationBuilder, createBackgroundComplicationBuildercreateEdgeComplicationBuildercreateRoundRectComplicationSlotBuilder, createBackgroundComplicationSlotBuildercreateEdgeComplicationSlotBuilder로 각각 이름이 바뀌었습니다. (Ib9adc)
  • CanvasComplication에 onRendererCreated를 추가하여 Renderer와 CanvasComplication이 상태를 더 쉽게 공유할 수 있습니다. (I5e1ac)

버전 1.0.0-alpha16

2021년 6월 16일

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

새로운 기능

  • 최근 스레딩 모델 변경사항과 관련된 여러 버그를 수정하고 시계 모드 편집기의 기타 문제도 해결했습니다.

버그 수정

  • onComplicationProviderChooserResult에서 NPE를 방지했습니다. (b/189594557)
  • 비활성 표면 및 drawBlack 문제를 수정했습니다. (b/189452267)
  • complicationsManager.watchState에 액세스할 때 경합 문제를 수정했습니다. (b/189457893)
  • 백그라운드 스레드 전체 기간 버그를 수정했습니다. (b/189445428)
  • R 이전의 시계 모드 편집기 문제를 수정했습니다. (b/189126313)
  • 편집기 스타일 변경에 관한 직접 부팅 매개변수를 업데이트하면 안 됩니다. (b/187177307)

버전 1.0.0-alpha15

2021년 6월 2일

androidx.wear:wear-*:1.0.0-alpha15가 출시되었습니다. 버전 1.0.0-alpha15에 포함된 커밋을 확인하세요.

새로운 기능

이제 시계 모드 초기화의 대부분이 백그라운드 스레드에서 실행되지만, 모든 시계 모드 렌더링 등을 로드한 후에는 UiThread에서 실행됩니다. 로드와 렌더링 사이에 메모리 장벽이 있으므로 대부분의 사용자 시계 모드는 특별한 조치를 취하지 않아도 됩니다. GLES를 사용하는 시계 모드는 컨텍스트가 스레드마다 다르고 연결된 컨텍스트 두 개를 생성하기 때문에 백그라운드 스레드에서 GL 리소스(예: 텍스처 및 셰이더)를 업로드하고 UiThread에서 사용할 수 있으므로 예외가 될 수 있습니다.

시계 모드의 구성을 createUserStyleSchema, createComplicationsManager, createWatchFace의 세 가지 함수로 분할했습니다. createUserStyleSchema 및 createComplicationsManager는 속도가 빠르고 createWatchFace는 애셋을 로드하는 데 다소 시간이 걸릴 수 있다고 가정합니다. 이를 바탕으로 정보 표시 ID 지도를 DefaultComplicationProviderPolicies 및 기본 ComplicationType으로 반환하는 WatchFaceControlClient.getDefaultProviderPoliciesAndType을 도입했습니다. 이 방법은 쿼리를 실행하기 위해 시계 모드를 완전히 초기화할 필요가 없기 때문에 헤드리스 인스턴스를 만드는 것보다 속도가 빠릅니다.

마지막으로 정보 표시는 CanvasComplication 렌더기의 지연 생성을 허용하는 CanvasComplicationFactory로 생성됩니다.

API 변경사항

  • @TargetApi@RequiresApi로 바꿨습니다 (I0184a, b/187447093, b/187447094)
  • 정보 표시 ID 지도를 DefaultComplicationProviderPolicies 및 기본 ComplicationType으로 반환하는 WatchFaceControlClient.getDefaultProviderPoliciesAndType을 도입했습니다. 가능한 경우 시계 모드를 완전히 구성하지 않는 빠른 경로가 사용됩니다. 이를 원활하게 하기 위해 WatchFaceService API는 두 가지 새로운 메서드인 createUserStyleSchema와 createComplicationsManager로 변경되어야 하며 그 결과는 createWatchFace로 전달됩니다. 또한 정보 표시는 이제 CanvasComplication 렌더기의 지연 생성을 허용하는 CanvasComplicationFactory로 구성됩니다. (Iad6c1)
  • SystemProviders에서 MOST_RECENT_APP을 삭제했습니다. (I3df00)
  • ObservableWatchData는 이제 봉인 클래스입니다. (Ic940d)
  • (일반적으로 io 바인드되는) CanvasComplicationFactory.create는 이제 UI 스레드 렌더링이 시작되기 전에 각 정보 표시의 백그라운드 스레드에서 호출됩니다. 구성과 렌더링 사이에 메모리 장벽이 있으므로 특별한 스레드 프리미티브가 필요하지 않습니다. (Ia18f2)
  • 이제 시계 모드 구성은 백그라운드 스레드에서 실행됩니다(단, 모든 렌더링은 UI 스레드에서 실행됩니다). GlesRenderer는 이를 위해 연결된 컨텍스트 두 개를 지원합니다. WatchFaceControlClient.createHeadlessWatchFaceClient와 WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient는 WatchFaceService.createWatchFace가 완료되기 전에 확인될 수 있습니다. 후속 API 호출은 watchFace 초기화가 완료될 때까지 차단됩니다. (Id9f41)
  • EXPANSION_DP 및 STROKE_WIDTH_DP는 더 이상 api.txt에 표시되지 않습니다. (I54801)
  • 오류가 발생할 경우 null 세션을 전송하는 대신 EditorSession.createOnWatchEditingSession에서 TimeoutCancellationException이 발생하도록 했습니다. 또한 EditorRequest.createFromIntent 및 EditorSession.createOnWatchEditingSession의 반환 값은 이제 NonNull입니다. (I41eb4)

버전 1.0.0-alpha14

2021년 5월 18일

androidx.wear:wear-*:1.0.0-alpha14가 출시되었습니다. 버전 1.0.0-alpha14에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 EditorSession.openComplicationProviderChooser가 정보 표시 ID와 ComplicationProviderInfo, 제공자 선택기에서 반환한 추가 extras가 포함된 번들을 포함하는 ChosenComplicationProvider를 반환합니다.
  • 또한 Google은 Kotlin으로 코드를 꾸준히 이전했으며 이제 시계 모드 API의 대부분이 Kotlin에서 정의됩니다.

API 변경사항

  • 이제 GlesRenderer 속성 eglContexteglDisplay가 null을 허용하지 않습니다. 모든 GL 오류는 이제 RuntimeExceptions가 아닌 GlesRenderer.GlesException을 통해 보고됩니다. (Ib1005)
  • androidx.wear.watchface.complications.rendering.ComplicationDrawable을 자바에서 Kotlin으로 이전했습니다. (Ibc3eb)
  • androidx.wear.watchface.complications.rendering.ComplicationStyle을 자바에서 Kotlin으로 이전했습니다. (I3375e)
  • EditorSession 내에 각 정보 표시에 관한 정보 표시 제공자 정보를 추가했습니다. (I37f14)
  • 선택된 제공자가 반환한 정보를 포함하도록 EditorSession.openComplicationProviderChooser 결과를 확장했습니다. (Iead6d)

Wear Complications 및 Watchface 버전 1.0.0-alpha13

2021년 5월 5일

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

새로운 기능

  • 시계 모드는 시간 및 정보 표시를 나타내는 것 외에 중요한 시각적 요소를 가질 수 있습니다. 여기에 스크린 리더를 지원하기 위해 이제 시계 모드는 Renderer의 additionalContentDescriptionLabels 속성을 통해 접근성 ContentDescriptionLabels를 지정할 수 있습니다. 또한, ContentDescriptionLabels의 순서를 제어하기 위해 accessibilityTraversalIndex가 정보 표시에 추가되었습니다. 이는 ComplicationsUserStyleSetting에서 수정할 수 있습니다.

  • 개발자가 스크린 리더를 신중하게 고려하도록 하기 위해 ShortTextComplicationData.Builder, LongTextComplicationData.BuilderRangedValueComplicationData.BuildercontentDescription 필드를 생성자에 전달해야 하는 필수 필드로 지정했습니다. contentDescription을 위해 ComplicationText.EMPTY가 전달되면 contentDescription이 텍스트와 제목에서 자동으로 생성됩니다.

  • 이제 init을 실행하는 중에 시계 모드에서 예외가 발생하면 WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient에서 ServiceStartFailureException이 발생합니다. 이로 인해 시계 모드가 시작할 때 문제를 더 쉽게 진단할 수 있습니다.

API 변경사항

  • 이전 버전의 Wear OS를 지원하기 위해 ComplicationProviderInfo에 null인 구성요소 이름을 사용할 수 있도록 지원합니다. (I744d2)
  • androidx.wear.complications.SystemProviders를 자바에서 Kotlin으로 이전했습니다. (Ia1f8b)
  • android.support.wearable.complications의 공개 API에서 모든 클래스를 숨기고 필요한 클래스만 AndroidX에 대응하는 래퍼를 만들었습니다. (I7bd50)
  • TimeDifferenceComplicationText.Builder의 메서드 이름을 setMinimumUnit에서 setMinimalTimeUnit으로 바꾸었습니다. (I20c64)
  • ShortTextComplicationData.Builder, LongTextComplicationData.BuilderRangedValueComplicationData.BuildercontentDescription 필드를 생성자에 필수 필드로 전달하도록 했습니다. (I8cb69)
  • ComplicationProviderService.onComplicationUpdate의 이름을 onComplicationRequest로 바꾸고 이 메서드의 ID 및 유형 매개변수를 data ComplicationRequest로 캡슐화했습니다. 이에 대응하는 리스너 이름을 ComplicationRequestListener와 메서드 ComplicationRequestListener.onComplicationData로 바꿨습니다. (Iaf146)
  • ComplicationData에서 메서드 isActiveAt을 삭제하고 그 대신 validTimeRange 필드를 노출했습니다. 이 메서드 호출은 validTimeRange.contains로 대체될 수 있습니다. (I65936)
  • int 대신 ComplicationType을 받도록 ComplicationProviderService.onComplicationActivated 메서드의 설명을 변경했습니다. (Idb5ff)
  • Java에서 Koltin으로 ProviderUpdateRequester를 이전했습니다. (Ibce13)
  • GlesRender.makeContextCurrent는 이제 공개 메서드입니다. 시계 모드 코드는 render와 onGlContextCreated 외부에서 gl 호출을 해야 할 수 있습니다. 이 메서드를 호출하는 데 필요한 대화형 컨텍스트와 헤드리스 컨텍스트가 모두 있을 수 있기 때문입니다. (I8a43c)
  • 이제 init을 실행하는 중에 시계 모드에서 예외가 발생하면 WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient에서 ServiceStartFailureException이 발생합니다. 또한, createWatchFace 실행이 6초 넘게 걸리면 이제 WatchFaceService에서 예외가 발생합니다. (I59b2f)
  • GlesTextureComplication의 사용되지 않는 ID 속성을 삭제했습니다. (I28958)
  • 이제 시계 모드에서 Renderer의 additionalContentDescriptionLabel 속성을 통해 접근성 ContentDescriptionLabel을 지정할 수 있습니다. ContentDescriptionLabels의 순서를 제어하는 것 외에 accessibilityTraversalIndex가 정보 표시에 추가되었습니다. 이는 ComplicationsUserStyleSetting에서 수정할 수 있습니다. (Ib7362)
  • 시계 모드에서 터치 이벤트 처리에 관한 문서를 펼칩니다. (Iaf31e)

버그 수정

  • EditorSession.getComplicationsPreviewData()는 이제 비어 있지 않은 정보 표시에만 맵을 반환합니다. 빈 정보 표시에는 EmptyComplicationData 인스턴스가 사용됩니다. (I1ef7e)

Wear Complications 및 Watchface 버전 1.0.0-alpha12

2021년 4월 21일

androidx.wear:wear-*:1.0.0-alpha12가 출시되었습니다. 버전 1.0.0-alpha12에 포함된 커밋을 확인하세요.

새로운 기능

시계 모드 편집기는 시계 모드의 일부를 강조표시하여 시계의 구성 중인 부분을 파악하는 데 도움이 되어야 합니다. RenderParameters를 확장하여 스타일과 정보 표시를 강조표시할 수 있도록 했습니다. 알파 투명도를 사용하여 시계 모드 위에 매팅되도록 하기 위한 신규 HighlightLayer(선택사항)가 있습니다(스크린샷 API는 매팅하거나 유연성을 극대화하도록 직접 HighlightLayer를 제공할 수 있음). 예를 들어, 스타일을 사용하여 시계 침의 모양을 구성한다고 가정해 보겠습니다. 그러면 스타일의 renderHighlightLayer의 렌더기가 시계 침 주위에 윤곽선을 그릴 수 있습니다.

정보 표시 제공자가 접근성을 지원하도록 PhotoImageComplicationData.Builder, MonochromaticImageComplicationData.Builder, SmallImageComplicationData.Builder의 contentDescription 필드를 필수 생성자 인수로 만들었습니다. 화면 가장자리에 그려지는 가장자리 정보 표시를 지원하기 위해 ComplicationTapFilter와 Complication.createEdgeComplicationBuilder를 추가했습니다. 가장자리 정보 표시의 렌더링과 히트 테스트는 시계 모드에서 이루어집니다. 호환 편집기에서는 가장자리 히트 테스트가 지원되지 않습니다.

API 변경사항

  • SystemProviders의 상수에 PROVIDER_ 접두어를 추가했습니다. (I1e773)
  • PhotoImageComplicationData.Builder, MonochromaticImageComplicationData.BuilderSmallImageComplicationData.BuildercontentDescription 필드를 필수 필드로 생성자에 전달하도록 했습니다. (I9643a)
  • ProviderInfoRetriever.requestPreviewComplicationData의 이름이 retrievePreviewComplicationData로 변경되었습니다. (I911ee)
  • ComplicationProviderService를 자바에서 Kotlin으로 이전했습니다. (I849f2)
  • 이제 ComplicationProviderService.onBind 메서드가 최종입니다. (I39af5)
  • CanvasComplication 인터페이스를 복구하고 CanvasComplicaitonDrawable, GlesTextureComplication, ComplicationHighlightRendererwear-watchface-complications-rendering으로 이동했습니다. (I84670)
  • 확장된 강조표시 렌더링을 지원하도록 RenderParameters를 리팩터링했습니다. 이제 모든 또는 단일 정보 표시와 스타일의 강조표시 렌더링을 요청할 수 있습니다. 또한, CanvasRenderer 및 GlesRenderer에는 편집기가 요청한 모든 강조표시를 렌더링하는 새로운 추상 renderHighlightLayer 메서드가 있습니다. 레이어 이름이 WatchFaceLayer로 변경되었습니다. (Ic2444)
  • 가장자리 정보 표시를 지원하는 ComplicationTapFilterComplication.createEdgeComplicationBuilder가 추가되었습니다. 가장자리 정보 표시의 렌더링과 히트 테스트는 시계 모드에서 이루어집니다. 편집기 내에서는 히트 테스트가 지원되지 않습니다. (Ia6604)
  • DoubleRangeUserStyleSettingLongRangeUserStyleSetting에서 이제 defaultValue, maximumValue, minimumValue는 Kotlin 속성입니다. 또한, toBooleanOption, toCoplicationOptions, toListOption 등의 UserStyleSetting.Option 함수가 삭제되었습니다. (I52899)
  • 시계 모드에서 사용할 수 있는 기기 속성에 인셋(또는 chin) 크기를 추가합니다. (I76e1e)
  • 이제 ComplicationHighlightRenderer의 생성자가 outlineExpansionoutlineStrokeWidth 매개변수를 허용합니다. (I87009)
  • 이제 ComplicationDrawable.getNoDataText는 공개 API의 일부입니다. (I00598)

버전 1.0.0-alpha11

2021년 4월 7일

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

새로운 기능

  • 시계 모드 API를 개선했습니다. InteractiveWatchFaceWcsClientInteractiveWatchFaceSysUiClientInteractiveWatchFaceClient로 병합되었으며, 나머지는 대부분 단순한 이름 변경입니다.

API 변경사항

  • ContentDescriptionLabel.text는 이제 이전 Wearable 지원 라이브러리의 TimeDependentText가 아니라 ComplicationText입니다. (I80c03)
  • SystemProviders.GOOGLE_PAY는 일부 Android R 기기에 존재하지 않을 수 있으므로 목록에서 삭제되었습니다. DefaultComplicationProviderPolicy를 통해 이 제공자를 계속 사용할 수 있습니다. (If01b5)
  • 일관성을 위해 ComplicationUpdateCallback의 이름을 ComplicationUpdateListener로 바꾸었습니다. (I61ec7)
  • UserStyle 와이어 형식 맵을 Map<String, byte[]>로 변경했습니다. UserStyleData 클래스는 편의상 공개 API에 추가되었으며 이제 wear-watchface-client와 wear-watchface-editor에서 사용합니다. 또한 CustomValueUserStyleSetting.CustomValueOption.value는 이제 String이 아닌 byte[]입니다. (Iaa103)
  • 이제 UserStyleSettingUserStyleSetting.Option은 각각 UserStyleSetting.IdUserStyleSetting.Option.Id를 사용하여 문자열이 아닌 ID를 저장합니다. (I63f72)
  • InteractiveWatchFaceClient.SystemState의 이름을 WatchUiState로 바꾸었습니다. (I6a4e0)
  • InteractiveWatchFaceWcsClientInteractiveWatchFaceSysUiClient는 책임 소재를 설명하기가 어려우므로 병합되었습니다. (Iff3fa)
  • 명확성을 위해 Layer 열거형 값의 이름을 바꾸었습니다. Layer#TOP_LAYER는 이제 Layer#COMPLICATIONS_OVERLAY이며, Layer#BASE_LAYER는 이제 Layer#BASE입니다. (Ia144e)
  • UserStyleListener의 이름을 UserStyleChangeListener로 바꾸었습니다. (I18524)
  • UserStyleRepository의 이름을 CurrentUserStyleRepository로 바꾸었습니다. (I6ea53)
  • InteractiveWatchFaceWcsClient.updateInstance의 이름을 updateWatchfaceInstance로 바꾸었습니다. (I321dc)
  • WatchFace TapType 이벤트의 이름을 MotionEvents/Compose에 맞게 바꾸었습니다. (I0dfd0)
  • takeWatchfaceScreenshot의 이름을 renderWatchFaceToBitmap으로 바꾸었으며, takeComplicationScreenshot의 이름을 renderComplicationToBitmap으로 바꾸었습니다. (Ie0697)
  • CanvasComplication 인터페이스를 삭제하고 공개 클래스인 CanvasComplicationDrawable로 대체했습니다. (I1f81f)
  • WatcfaceControlServiceFactory를 공개 API에서 삭제했습니다. (I1f8d3)
  • CanvasComplication.setData의 이름을 CanvasComplication.loadData로 바꾸었습니다. (If1239)
  • ComplicationsManager.bringAttentionToComplication의 이름을 displayPressedAnimation으로 바꾸었습니다. (Ic4297)
  • 이제 WatchFaceService.createWatchFace@UiThread 주석을 사용합니다. (Ib54c2)
  • CanvasComplicationDrawable 매개변수 이름을 바꾸어 버그를 수정했습니다. (I50dac)
  • AIDL을 통한 HeadlessWatchFaceClient 전송을 지원하기 위해 HeadlessWatchFaceClient.toBundle()HeadlessWatchFaceClient.createFromBundle을 추가했습니다. (I07c35)
  • 이제 HeadlessWatchFaceClient와 InteractiveWatchFaceClient를 사용하여 연결이 끊어진 경우 ClientDisconnectListener와 isConnectionAlive()로 원인을 알아볼 수 있습니다(예: 시계 모드가 종료됨). (Ie446d)
  • WatchFaceControlClient#getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync는 이제 일시중지 함수이며 getOrCreateInteractiveWatchFaceClient로 이름을 바꾸었습니다. (Ib745d)
  • EditorState.commitChangeshasCommitChanges()shouldCommitChanges()로 이름을 바꾸었습니다. (I06e04)
  • 지도에 항상 둘 이상의 정보 표시 항목이 있음을 나타내기 위해 previewComplicationData의 이름을 previewComplicationsData로 바꾸었습니다. (I56c06)
  • ComplicationsManager.displayPressedAnimation과의 일관성을 위해 InteractiveWatchFaceWcsClient.bringAttentionToComplication의 이름을 displayPressedAnimation으로 바꾸었습니다. (Ic9999)
  • 시계 모드 인스턴스 ID의 모든 인스턴스가 새로운 WatchFaceId 클래스로 캡슐화되었습니다. (I45fdf)
  • 복수형을 나타내기 위해 complicationState 속성의 이름을 complicationsState로 바꾸었습니다. (Ided07)
  • 여러 wear-watchface-client Binder 변환을 삭제했으며 이는 필수입니다. (Icc4c0)
  • 일관성을 위해 EditorServiceClient를 리팩터링하여 관찰자 대신 리스너를 사용하도록 했습니다. (Iec3a4)
  • 누락된 @Px 주석 몇 개를 InteractiveWatchFaceSysUiClientWatchFaceControlClient에 추가했습니다. (I3277a)
  • 일관성을 위해 EditorObserverCallback의 이름을 EditorObserverListener로 바꾸었습니다. (Ie572d)
  • EditorState.watchFaceInstanceId는 Android R API 수준 이상으로 제한되며 더 이상 null을 허용하지 않습니다. (Id52bb)
  • EditorSession.launchComplicationProviderChooser의 이름을 openComplicationProviderChooser로 바꾸었습니다. (I9d441)
  • EditorSession.createOnWatchEditingSessionAsync의 이름을 createOnWatchEditingSession으로 바꾸었으며 이는 이제 일시중지 함수입니다. (Id257b)
  • 누락된 @UiThread 주석 몇 개를 EditorSession에 추가했습니다. (I6935c)
  • UserStyleSetting.affectsLayers의 이름을 affectedLayers로 바꾸었습니다. (I6e22b)

버전 1.0.0-alpha10

2021년 3월 24일

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

새로운 기능

  • 이제 WatchFaceService.createWatchFace 중에 열리는 gl 객체(예: 텍스처)를 생성할 수 있습니다. 이제 GlesRenderer에는 createWatchFace 내에서 수행할 수 있는 명시적 initOpenGLContext 호출이 필요하기 때문입니다.

API 변경사항

  • IdAndComplicationData가 조금 불편해 공개 API에서 삭제되었습니다. 이 클래스와 이 클래스를 사용한 인터페이스가 리팩터링되었습니다. (I4c928)
  • 설명이 제공되는 CountUpTimeReferenceCountDownTimeReferenceReferenceTime이 대체되었습니다. (Ib66c6)
  • 누락된 @Px@ColorInt 주석이 추가되었습니다. (I9bbc3)
  • 이제 Complication.complicationConfigExtras는 null이 허용되지 않으며 기본값이 Bundle.EMPTY입니다. (Iad04f)
  • 이제 GlesRenderer를 사용하려면 생성 후 initOpenGLContext를 호출해야 합니다. 이 함수는 내부 세부정보였지만 이제는 createWatchFace 내에서 GL 호출이 가능하도록 공개 API에 위치합니다. (I726c2)
  • 필요하지 않기 때문에 Complication.setRenderer가 제거되었습니다. (Ie992f)
  • Complicaiton.setComplicationBounds는 더 이상 공개 API의 일부가 아닙니다. 정보 표시 위치를 조정해야 한다면 ComplicationsUserStyleSetting을 통해 조정할 수 있습니다. (Ibd9e5)
  • ComplicationsManager.TapCallback.onComplicationSingleTapped의 이름이 onComplicationTapped로 변경되었습니다. (I3a55c)
  • ComplicationOutlineRenderer.drawComplicationSelectOutline의 이름이 drawComplicationOutline으로 변경되었습니다. (I14b88)

버전 1.0.0-alpha09

2021년 3월 10일

androidx.wear:wear-complications-*:1.0.0-alpha09androidx.wear:wear-watchface-*:1.0.0-alpha09가 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.

새로운 기능

  • WCS/SysUI 호스트와 시계 모드 간의 인터페이스가 변경되었습니다. 이제 편집기에서 스타일 변경으로 정보 표시 기능을 사용 설정할지 또는 중지할지 결정할 수 있습니다(enabled = initiallyEnabled + ComplicationsUserStyleSetting의 재정의). 또한, EditorService.closeEditor를 사용하면 필요한 경우 SysUI에서 원격으로 시계 모드 편집기를 종료할 수 있습니다.
  • 또한, 더 강력한 명령어 updateInstance를 사용하여 InteractiveWatchFaceWcsClient.setUserStyle에서 인스턴스 ID 변경, 스타일 설정 및 정보 표시 삭제를 한 번에 할 수 있습니다.

API 변경사항

  • TraceEvents를 시계 모드 라이브러리에 추가했습니다. (I1a141)
  • 이제 ComplicationState에는 새로운 속성 initiallyEnabled가 있습니다. 이 속성은 스타일 전환 결과를 예측하는 데 유용합니다. (I8c905)
  • InteractiveWatchFaceWcsClient.setUserStyle을 더 강력한 명령어 updateInstance로 대체했습니다. 이 명령어는 인스턴스 ID를 변경하고 스타일을 설정하며 정보 표시를 삭제합니다. (Ife6f6)
  • WatchFaceClient 스크린샷 API는 속도가 느리므로 더 이상 스크린샷을 압축하지 않습니다. 대신, 호출자에게 후처리를 남겨둡니다. (Id35af)
  • 이제 EditorService.closeEditor를 통해 원격으로 시계 모드 편집기를 종료할 수 있습니다. (Ic5aa4)
  • null 허용 여부 주석을 추가했습니다. (Ic16ed)

버전 1.0.0-alpha08

2021년 2월 24일

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

새로운 기능

  • 일부 시계 모드는 하나 이상의 특정 정보 표시를 중심으로 설계되었으며, 이를 지원하기 위해 Complication.Builder#setFixedComplicationProvider를 추가했습니다. true로 설정하면 사용자가 이 슬롯의 정보 표시를 변경할 수 없습니다.
  • 시계 모드 라이브러리는 우선 Kotlin이며 코루틴(예: 정지 함수)을 사용합니다. 자바 사용자를 위해 다음 라이브러리에서 상호 운용성을 개선하려는 목적으로 ListenableFuture 래퍼를 제공합니다. wear/wear-watchface-guava, wear/wear-watchface-client-guava & wear/wear-watchface-editor-guava

API 변경사항

  • 제공자 선택기를 실행하는 정보 표시를 두 번 탭하는 기능의 지원을 삭제했습니다. 이 기능은 시계 모드에서 흔히 사용되지 않으며 이로 인해 SysUI의 구현이 복잡해졌습니다. (I3ef24)
  • 바인더가 예기치 않게 종료되면 ProviderInfoRetriever 메서드가 ServiceDisconnectedException을 발생시킬 수 있습니다. (Ib2cc4)
  • Android 11부터는 ProviderChooser를 실행할 수 있는 경우를 제한하고, 새 wear-watchface-editor로 빌드하여 공개 API에서 ComplicationHelperActivity를 삭제합니다. (Ib19c1)
  • ComplicationText 정적 메서드를 삭제하고 빌더로 대체합니다. (Ibe399)
  • 다양한 시계 모드 라이브러리 정지 메서드용으로 Guava ListenableFuture 래퍼를 도입했습니다. (I16b2c)
  • API 명확성을 위해 LayerMode.DRAW_OUTLINED 외에 LayerModes와 사용할 수 있도록 색조가 필수가 아닌 보조 생성자를 RenderParameters에 추가했습니다. (I497ea)
  • 이전에 ListUserStyleSetting은 기본 인수가 있으므로 다른 요소와 달랐습니다. 이제 모든 StyleSetting 서브클래스 생성자가 기본값을 유지합니다. (I9dbfd)
  • 숨겨진 메서드를 사용하도록 CanvasComplication이 리팩터링되었으며, 이를 통해 서브클래스를 더 쉽게 구현할 수 있습니다. (I5b321)
  • EditorResult를 리팩터링하고 새로운 EditorService 및 EditorSession.broadcastState()로 대체했으며 이는 관찰자(일반적으로 SysUI)로 업데이트를 스트리밍하기 위함입니다. (Ic4370)
  • 일부 시계 모드는 특정 정보 표시를 제공자가 사용자 구성 가능한 요소로 지정할 수 없는 필수적인 시계 모드 부분으로 두고 빌드됩니다. 이를 지원하기 위해 Complication.Builder#setFixedComplicationProvider를 추가했습니다. (I4509e)
  • 이제 EditorRequest는 ComponentName 대신 패키지 이름을 지정합니다. SysUI가 편집기의 클래스 이름을 찾기가 어려우며 실제로 패키지 이름만 필요하기 때문입니다. (Ib6814)

버전 1.0.0-alpha07

2021년 2월 10일

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

새로운 기능

  • 이제 WatchFaceService.createWatchFace는 정지 함수로 IO 대기 중에 시계 모드에서 UI 스레드를 차단하지 않아도 됩니다. wear-watchface-editor와 wear-Complications-data도 마찬가지입니다.

API 변경사항

  • PhotoImage 클래스를 삭제하고 아이콘을 바로 사용합니다. (I8a70b)
  • ComplicationData의 validTimeRange를 노출합니다. (I91366)
  • 이미지 같은 속성을 더 명시적으로 만듭니다. (I81700)
  • wear-watchface-editor와 wear-complications-data가 코루틴 대신 정지 함수를 사용하도록 리팩터링되었습니다. Rx 자바 및 향후 호환성 래퍼를 따르기 위함입니다. (If3c5f)
  • requestPreviewComplicationData에서 연결 문제 또는 API 지원 부족으로 미리보기 데이터를 반환할 수 없는 경우 ProviderInfoRetriever에서 PreviewNotAvailableException이 발생합니다. (I4964d)
  • 이제 WatchFaceControlService::createWatchFaceControlClient는 정지 함수이고 getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient는 Deferred<InteractiveWatchFaceWcsClient>를 반환하는 getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync입니다. RX 자바 및 향후 호환성 래퍼를 따르기 위함입니다. (I5d461)
  • CATEGORY_PROVIDER_CONFIG_ACTION의 이름을 CATEGORY_PROVIDER_CONFIG로 바꿉니다. (I7c068)
  • 편집기 활동이 시작된 직후에도 시계 모드를 사용할 수 없는 경우가 있으므로 이제 createOnWatchEditingSession은 정지된 함수입니다. (Ida9aa)
  • WatchFaceService.createWatchFace는 이제 비동기 초기화를 허용하는 정지 함수로 이전에는 기본 스레드를 차단해야 했습니다. (If076a)
  • 이제 UserStyle에 배열 연산자가 포함되며 UserStyle.Option에 변환 도우미를 추가했습니다. (I35036)
  • 불안정한 숨겨진 API 일부를 변경하는 UserStyle wireformat의 마샬링 버그를 수정했습니다. (I8be09)
  • CustomValueUserStyleSetting을 추가했습니다. 이 메서드를 사용하면 UserStyle에 단일 애플리케이션별 문자열을 저장할 수 있습니다. 기본 시계 모드 편집기는 이 값을 무시합니다. (Ic04d2)
  • InstanceID는 업그레이드가 불가한 Android WearOS R 이하 버전의 인텐트 추가 항목으로 전달되지 않습니다. 이를 지원하기 위해 이제 InstanceID에 null을 허용합니다. (Id8b78)
  • 이제 EditorRequest에 WatchFaceEditorContract.createIntent의 구성요소로 설정되는 편집기 ComponentName이 포함됩니다. (I3cd06)
  • 이제 시계 모드 EditorResult에 미리보기 ComplicationData가 포함됩니다. 이를 사용하면 호출자가 편집 후 시계 모드에서 스크린샷을 찍을 수 있습니다. (I2c561)

버그 수정

  • 클래스를 더 잘 활용할 수 있도록 UserStyle, UserStyleSetting, UserStyleSchema에 toString() 재정의를 추가했습니다. (I9f5ec)

버전 1.0.0-alpha06

2021년 1월 27일

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

새로운 기능

  • 시계 모드 개발자와 잠재적인 OEM이 스타일 및 정보 표시 편집기를 빌드할 수 있는 새 라이브러리 wear/wear-watchface-editor를 도입했습니다. SysUI는 새 EditorSession 클래스를 사용하여 WatchFace 세부정보에 액세스하고 Activity.setWatchRequestResult를 통해 결과를 기록하는 시계 모드에 인텐트를 전송합니다. 이를 지원하기 위해 시계 모드 편집기에서 미리보기 ComplicationData를 요청할 수 있는 ProviderInfoRetriever.requestPreviewComplicationData를 추가했습니다. 미리보기 ComplicationData의 이점은 실시간 데이터와 달리 편집기를 렌더링할 때 권한 대화상자 표시를 걱정하지 않아도 된다는 것입니다. 사용자가 권한이 있는 제공자를 선택하는 경우에도 권한을 부여하라는 메시지가 계속 표시됩니다.

API 변경사항

  • 이제 ComplicationProviderInfo에 제공자의 ComponentName 필드가 있습니다. 이 필드 지원은 나중에 WearOS에 추가될 예정이며 그동안에는 null입니다. (Id8fc4)
  • 시계 모드 편집기에서 미리보기 ComplicationData를 요청할 수 있는 ProviderInfoRetriever.requestPreviewComplicationData를 추가했습니다. 이는 실시간 정보 표시에서 권한을 요구할 수 있고 이제 활성 상태가 아닌 정보 표시의 미리보기 데이터를 표시할 수 있으므로 유용합니다. (I2e1df)
  • 이제 ComplicationManager가 WatchFace 생성자의 선택적 매개변수이고 인수가 이를 허용하도록 재정렬되었습니다. (I66c76)
  • 세트가 제공자 선택기 활동을 실행하기 위해 전송된 인텐트와 병합되는 Complications에 선택적 번들을 추가했습니다. (Ifd4ad)
  • 시계 모드 및 SysUi 호스팅 편집기를 지원하는 새 wear-watchface-editor 라이브러리를 추가했습니다. SysUI는 인텐트를 전송하여 이러한 편집기를 실행합니다. 시계 모드 활동 서비스가 새 EditorSession 클래스를 사용하여 WatchFace 세부정보에 액세스하고 Activity.setWatchRequestResult를 통해 결과를 기록할 수 있습니다. (I2110d)
  • LayerMode.DRAW_HIGHLIGHTED가 이제 LayerMode.DRAW_OUTLINED로, RenderParameters.highlightComplicationId가 RenderParameters.selectedComplicationId로 이름이 바뀌며 윤곽 외에 지정된 정보 표시에 강조표시를 그립니다. (I90a40)
  • WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient의 미래는 이제 시계 모드가 만들어지기를 기다리는 동안 서비스가 종료되면 ServiceStartFailureException으로 해결할 수 있습니다. (I0f509)
  • EditorSession.complicationPreviewData가 이제 ListenableFuture입니다. 이 데이터 가져오기가 비동기 프로세스이기 때문입니다. (Iead9d)

버그 수정

  • 사용 설정된 것과 complicationBounds를 제외하고 ComplicationOverlay에서 사용되지 않는 필드를 삭제합니다. (I17b71)

버전 1.0.0-alpha05

2021년 1월 13일

androidx.wear:wear-*:1.0.0-alpha05가 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.

새로운 기능

시계 모드에서는 화면상 정보 표시의 개수를 변경하는 등 다양한 정보 표시 구성을 지원하는 경우가 종종 있습니다. 이러한 설정을 더 쉽게 만들기 위해 이제 Google은 빌더에서 setEnabled(false)를 호출하여 처음에 사용 중지되는 정보 표시를 지원합니다. 나중에 ComplicationsUserStyleSetting을 통해 사용하도록 설정할 수 있습니다.

API 변경사항

  • 이제 ComplicationHelperActivity가 int 배열이 아닌 Collection<ComplicationType>을 허용하므로 사용하기가 더 쉽습니다. (I1f13d)
  • 이제 ProviderInfoRetriever.retrieveProviderInfoListenableFuture<ProviderInfo[]>를 올바르게 반환합니다. (If2710)
  • 이제 빌더에서 setEnabled(false)를 호출하여 처음에 사용 중지되는 정보 표시를 만들 수 있습니다. (Idaa53)
  • 이제 WatchFaceState에는 헤드리스 인스턴스의 경우에만 true인 isHeadless 속성이 있습니다. (Ifa900)
  • 이제 ComplicationDrawable이 드로어블의 동기 로드를 선택적으로 지원합니다. 스크린샷 API에서 사용합니다. (I34d4a)

버전 1.0.0-alpha04

2020년 12월 16일

androidx.wear:wear-*:1.0.0-alpha04가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.

새로운 기능

  • Wear 시계 모드 라이브러리가 이제 유형별 경계 설정을 지원합니다. 예를 들어 ComplicationType.LONG_TEXT의 경우 넓은 경계 상자로 전환하고 다른 유형에는 더 작은 경계 상자를 사용할 수 있습니다.

API 변경사항

  • 이제 Complications는 Map<ComplicationType, RectF>를 래핑하는 ComplicationBounds를 사용하여 정보 표시 유형 크기를 지원합니다. (I1ebe7)
  • 이제 RenderParameters를 사용하여 스크린샷에서 사용할 강조 색조를 지정할 수 있습니다. (Iff42b)
  • 이제 경계를 제외하고는, 정보 표시를 수정하는 데 ComplicationsUserStyleSetting을 사용해야 하며 그 이유는 OS의 동기화 상태를 유지하기 위해서입니다. (I8dc5d)
  • 렌더기가 이제 봉인 클래스입니다. 즉, CanvasRenderer와 GlesRenderer는 이제 렌더기의 내부 클래스입니다. (Iab5d4, b/173803230)
  • CanvasComplicationDrawable.drawHighlight의 이름을 drawOutline으로 바꿨습니다. 이제 ObservableWatchData에서 몇 가지 UiThread 주석이 없어졌습니다. ScreenState가 이제 WatchState에서 완전히 삭제되었습니다. (If1393)
  • wear-watchface의 최소 API 수준은 이제 25입니다. 하드웨어 캔버스가 지원되려면 API 수준 26 이상이 필요합니다. (Ic9bbd)
  • 이제 InteractiveWatchFaceWcsClient에 getComplicationIdAt 도우미가 추가되었습니다. (I05811)
  • wear-watchface-client의 API 수준은 25로 낮아졌지만 스크린샷 API에는 수준 27이 필요합니다. (Id31c2)

버그 수정

  • 이제 정보 표시의 현재 ComplicationData의 ComplicationType을 ComplicationState에 노출합니다. (I9b390)
  • 이제 InteractiveWatchFaceWcs에는 지정된 정보 표시의 주요 특징을 간략하게 설명하는 bringAttentionToComplication 메서드가 있습니다. (I6d31c)
  • InteractiveWatchFaceWcsClient#setUserStyle에 이제 Map<string, string="">을 허용하는 오버로드가 있으므로 UserStyle을 구성하는 데 필요한 추가 IPC 왕복을 방지할 수 있습니다. (I24eec)</string,>

버전 1.0.0-alpha03

2020년 12월 2일

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

새로운 기능

이제 Complication 클래스에 compicationData 속성이 있어서 시계 모드가 ComplicationData 변경을 관찰할 수 있습니다. 이에 따라 정보 표시 유형을 기반으로 정보 표시의 크기를 변경할 수 있습니다.

이제 Renderer.interactiveDrawModeUpdateDelayMillis에 할당하여 가변 프레임 속도를 지원합니다. 덕분에 1초마다 짧은 애니메이션을 실행하는 시계 모드의 경우 애니메이션 미실행 시 절전 모드로 전환함으로써 많은 전력을 절약할 수 있습니다.

API 변경사항

  • 관련 클래스와 함께 BACKGROUND_IMAGE의 이름을 PHOTO_IMAGE로 바꿨습니다. 이 유형의 정보 표시는 백그라운드에만 사용되지는 않으므로 이름을 변경했습니다. (I995c6)
  • DefaultComplicationProviderPolicy가 IntDefs로 올바르게 주석 처리됩니다. (I3b431)
  • 숨겨진 TimeDependentText 클래스가 더 이상 ContentDescriptionLabel을 통해 노출되지 않습니다. 대신, 지정된 시간에 텍스트를 가져오도록 접근자를 추가합니다. (Ica692)
  • ObservableWatchData의 생성자가 이제 내부용입니다. (I30121, b/173802666)
  • 이제 Complication에 compicationData가 있어서 시계 모드가 ComplicationData 변경을 관찰할 수 있습니다. 또한 Complication에는 지정된 날짜/시간에 무언가를 렌더링해야 하는지 여부를 지정하는 데 사용할 수 있는 새 isActiveAt 호출이 있습니다. (Ic0e2a)
  • 공개 API에 더 이상 빈 SharedMemoryImage가 없습니다. (I7ee17)
  • 이제 WatchFace.overridePreviewReferenceTimeMillis에는 IntRange 주석이 있으며 getter와 setter에 일관된 이름이 사용됩니다. (Ia5f78)
  • 이제 명확성을 위해 Complication.createRoundRectComplicationBuilder 또는 Complication.createBackgroundComplicationBuilder를 통해 Complication.Builder가 생성됩니다. (I54063)
  • 정보 표시에서 사용되지 않은 탭을 WatchFace가 관찰할 수 있도록 WatchFace.TapListener를 추가했습니다. (Ic2fe1, b/172721168)
  • 이제 WatchFace가 Renderer.interactiveDrawModeUpdateDelayMillis에 할당하여 가변 프레임 속도를 지원합니다. 이렇게 하면 애니메이션 미실행 시 절전 모드로 전환하여 배터리 수명을 유지하는 데 도움이 됩니다. (I707c9)
  • WatchFace.Builder가 더 이상 필요하지 않으며, invalidate()와 interactiveUpdateRateMillis를 렌더기로 이동했습니다. (I329ea)
  • 자바 상호 운용성을 향상하기 위해 WatchState에서 부울 속성용 getter의 이름을 바꿨습니다. (I6d2f1).
  • 일관성을 위해 TapListener의 이름을 TapCallback으로, InvalidateCallback의 이름을 InvalidateListener로 바꿨습니다. (I9414e)
  • 명확성을 위해 Wear 2.0 시계 모드 스타일 옵션을 자체 클래스로 이동했습니다. 이제 WatchFace.Builder setter에 대칭되는 WatchFace 클래스 getter가 있습니다. (Iefdfc)
  • 배경화면 서비스가 연결되고 엔진을 만든 후에 인스턴스를 생성하거나 기존 인스턴스를 가져오는 InteractiveWatchFaceWcsClient 및 WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient를 추가했습니다. (Id666e)
  • 이제 WatchFaceControlClient는 모의 테스트를 허용하는 인터페이스입니다. (I875d9)
  • 이제 HeadlessWatchFaceClient, InteractiveWatchFaceSysUiClientImpl, InteractiveWatchFaceWcsClient는 테스트를 더 원활하게 하는 인터페이스입니다. (I7cdc3)
  • wear-watchface-complications-rendering의 메서드에 주석을 추가했습니다. (I0d65c)

버그 수정

  • android.content.res.Configuration#isScreenRound()를 복제하던 DeviceConfig에서 화면 모양을 삭제합니다. (Ifadf4)
  • UserStyle 대신 Map<String, String>을 허용하도록 WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient를 변경했습니다. 클라이언트가 생성된 후에만 가져올 수 있는 스키마를 모르면 UserStyle을 만들기가 어렵기 때문입니다. (Iea02a)
  • 와이어 형식 대신 ComplicationState를 사용하도록 InteractiveWatchFaceWcsClient를 수정합니다. (Icb8a4)
  • 시계 모드 편집기는 기본 제공 클래스만 이해할 수 있으므로 이제 UserStyleSettings는 봉인 클래스입니다. (I2d797)

버전 1.0.0-alpha02

2020년 11월 11일

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

API 변경사항

  • ComplicationDetails는 이제 ComplicationState라고 불리며 적절하게 래핑됩니다. 웨어러블 지원 @ComplicationData.ComplicationType을 androidx ComplicationType으로 이전하여 사용하게 되었습니다. (I4dd36)
  • 선택적 highlightedComplicationId 매개변수가 RenderParameters에 추가되어 단일 정보 표시가 스크린샷에 강조표시되도록 요청할 수 있습니다. (I66ce9)
  • ComplicationProviderService에서 일관성을 위해 새로운 스타일의 정보 표시 API를 사용합니다.(Id5aea 참조)
  • getPreviewReferenceTimeMillis가 이제 DeviceConfig에서 참조 시간을 가져옵니다. (I779fe 참조)
  • Renderer API 노출 영역을 단순화하여 대신 SurfaceHolder.Callback을 사용하여 변경사항을 관찰할 수 있습니다. (I210db 참조)
  • CanvasComplicationRendererRenderer에서 확장되지 않으므로 명확히 하기 위해 이름이 바뀌었습니다. (Ibe880)

버그 수정

  • androidx.wear:wear-watchface-client의 첫 번째 버전(I1e35e 참조)
  • 명확히 하기 위해 GlesTextureComplication#renderer의 이름을 바꿈(Ib78f7 참조)
  • 명확히 하기 위해 StyleCategory의 이름을 StyleSetting으로 바꿈(I488c7 참조)
  • 더 깔끔한 API를 위해 UserStyleSchema 추가(If36f8 참조)

버전 1.0.0-alpha01

2020년 10월 28일

androidx.wear:wear-complications-*:1.0.0-alpha01androidx.wear:wear-watchface-*:1.0.0-alpha01가 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.

API 변경사항

  • 공개 API에 노출할 의도가 아니었던 사항을 삭제했습니다. (I41669 참조)
  • androidx.wear:wear-complications-provider 라이브러리를 만듭니다. (I77f1f 참조)
  • ComplicationsUserStyleCategory는 정보 표시 구성에 추천되는 새로운 카테고리(I96909 참조)
  • wear-complication-data API를 추가합니다. (I7c268 참조)
  • 부울 반환 값이 있는 함수에 'get'이 아닌 'is'라는 접두사를 사용함(If36ff 참조)
  • 이 클래스가 생성자를 통해 매개변수를 가져오도록 리팩터링되었으므로 보호 대상 API를 사용하지 않는 것이 좋습니다. (I61644 참조)
  • 명확히 하기 위해 setBackgroundComplication의 이름을 바꿉니다. (I96fe3 참조)
  • ComplicationDrawable isHighlighted 및 데이터에 Kotlin 속성 사용(I4dcc8 참조)
  • ComplicationRenderer.InvalidateCallback 대신 Complication#invalidate() 추가(I4f4c6 참조)
  • 이러한 API는 WearableSupport에서 지원 중단되어 여기에서 삭제되었습니다. (Ib425c 참조)
  • Wear 2.0 기존 특성을 강조하기 위해 일부 WatchFace 빌더 메서드 이름을 바꿨습니다. (Idb775 참조)
  • wear/wear-watchface용 첫 번째 베타 API 후보(Id3981 참조)
  • 최초의 추적되는 API 버전입니다. (Ie9fe6 참조)
  • ComplicationDrawable.BorderStyle IntDef를 적절하게 숨기고 일관성을 위해 ComplicationStyle로 이동합니다. (I27f7a 참조)
  • ComplicationStyle 메서드의 누락된 주석 추가(I838fd 참조)
  • 이 라이브러리에는 공개 API 노출 영역이 없습니다.(I88e2b 참조)
  • 모든 스타일 카테고리 Option 클래스가 이제 적절하게 마무리되었습니다. (Ib8323 참조)
  • 최초의 추적되는 API 버전입니다. (I27c85)

버그 수정

  • 명시적인 getComplicationPreviewData 메서드를 포함하도록 ComplicationProviderService를 변경했습니다. (I4905f 참조)
  • MissingGetterMatchingBuilder의 API 린트 검사가 androidx용으로 사용 설정되었습니다. (I4bbea, b/138602561 참조)
  • wear-complications-rendering의 이름을 바꿉니다. (Ifea02 참조)
  • 이제 스타일 카테고리 표시 이름이 CharSequences임(I28990 참조)
  • 현재 테마 및 스타일 이름 지정 규칙에 맞게 Override를 Overlay로 대체합니다. (I4fde9 참조)
  • 명확히 하기 위해 UserStyle#getOptions의 이름을 바꿨습니다. (I695b6)

버전 1.2.0

버전 1.2.0-alpha13

2021년 8월 4일

androidx.wear:wear:1.2.0-alpha13이 출시되었습니다. 버전 1.2.0-alpha13에 포함된 커밋을 확인하세요.

API 변경사항

  • WearTypeHelper.isChinaDevice 이름이 WearTypeHelper.isChinaBuild로 변경되었습니다. (I47302)

버그 수정

  • androidx.wear.widget.ConfirmationOverlay에 접근성 기능이 추가되어 메시지를 소리내어 읽은 후 설정된 경우 애니메이션 설명을 제공합니다. (I524dd)

버전 1.2.0-alpha12

2021년 7월 21일

androidx.wear:wear:1.2.0-alpha12가 출시되었습니다. 버전 1.2.0-alpha12에 포함된 커밋을 확인하세요.

API 변경사항

  • 지정된 Wear 기기가 중국용인지 확인하기 위해 androidx.wear.utils에 새 API WearTypeHelper가 추가되었습니다. (Ib01a9)

버전 1.2.0-alpha11

2021년 6월 30일

androidx.wear:wear:1.2.0-alpha11이 출시되었습니다. 버전 1.2.0-alpha11에 포함된 커밋을 확인하세요.

버그 수정

  • 가로로 스크롤하는 RecyclerView에서 WearableDrawerLayout이 모든 상호작용을 미리 볼 수 있는 버그를 수정했습니다. (I24c7f)

버전 1.2.0-alpha10

2021년 6월 2일

androidx.wear:wear:1.2.0-alpha10이 출시되었습니다. 버전 1.2.0-alpha10에 포함된 커밋을 확인하세요.

새로운 기능

  • Alpha10은 Curved Text 및 ArcLayouts의 접근성 지원을 개선합니다. API를 명확하게 하기 위해 DismissibleFrameLayout에 몇 가지 이름 변경도 추가합니다.

API 변경사항

  • DismissibleFrameLayout에서 다음 메소드의 이름을 변경했습니다. (Ib195e)
    • Callback#onDismissed -> Callback#onDismissedFinished
    • isSwipeDismissible -> isDismissableBySwipe
    • isBackButtonDismissible -> isDismissableByBackButton
  • 다음 메서드를 최종적으로 만들었습니다. (Ib195e)
    • setBackButtonDismissible
    • setSwipeDismissible
    • registerCallback
    • unregisterCallback

버그 수정

  • 음성 안내 지원에서 CurvedTextView의 콘텐츠를 사용합니다. (I05798)
  • ArcLayout에서 일반 뷰의 접근성이 개선되었습니다. (I4418d)

버전 1.2.0-alpha09

2021년 5월 18일

androidx.wear:wear:1.2.0-alpha09가 출시되었습니다. 버전 1.2.0-alpha09에 포함된 커밋을 확인하세요.

API 변경사항

  • 텍스트 글꼴과 굵은/기울임꼴 스타일을 설정하는 새 함수 CurvedTextView.setTypeface()(TextView와 유사)를 추가했습니다. (I4653c)
  • WearArcLayoutArcLayout으로, WearCurvedTextCurvedText로, WearArcLayout.ArcLayoutWidgetArcLayout.Widget으로 이름을 바꿨습니다. (I6e5ce)
    • ArcLayout.Widget에서 getThicknessPxgetThickness로 이름을 바꿨습니다.
    • 이제 ArcLayout.LayoutParams의 세로 정렬 상수가 이전의 VALIGN_이 아닌 VERTICAL_ALIGN_으로 이름이 시작됩니다.
  • CurvedTextView에서 setMinSweepDegreessetMaxSweepDegrees 메서드를 setSweepRangeDegrees로 대체했습니다. (I7a9d9)

버전 1.2.0-alpha08

2021년 5월 5일

androidx.wear:wear:1.2.0-alpha08아 출시되었습니다. 버전 1.2.0-alpha08에 포함된 커밋을 확인하세요.

API 변경사항

  • 코드 명확성을 향상하기 위해 일부 각도 매개변수와 반환 유형에 @FloatRange 주석을 추가했습니다. (I430dd)
  • 이제 WearArcLayout.ArcLayoutWidget 인터페이스에서 insideClickArea 메서드는 isPointInsideClickArea라고 합니다. (Ia7307)

버전 1.2.0-alpha07

2021년 3월 24일

androidx.wear:wear:1.2.0-alpha07이 출시되었습니다. 버전 1.2.0-alpha07에 포함된 커밋을 확인하세요.

버그 수정

  • 높이가 너비보다 큰 화면 크기를 사용하면 WearArcLayout 내부의 비 곡선 하위 요소에 발생하던 오류가 수정되었습니다. 그러한 비 곡선 하위 요소는 이제 모든 화면 유형의 원호 안에 적절하게 배치됩니다.

버전 1.2.0-alpha06

2021년 1월 27일

androidx.wear:wear:1.2.0-alpha06이 출시되었습니다. 버전 1.2.0-alpha06에 포함된 커밋을 확인하세요.

API 변경사항

  • Ongoing Activities 라이브러리를 새 하위 라이브러리 wear-ongoing으로 이전합니다. 이제 클래스가 androidx.wear.ongoing 패키지(이전에는 androidx.wear.ongoingactivities)에 있습니다. (I7c029)
  • WearableCalendarContract 클래스를 Wearable 지원 라이브러리에서 AndroidX로 이전합니다. 이 API는 CalendarContract를 통해 사용할 수 있는 데이터의 하위 집합을 제공하지만 웨어러블 기기에 자동으로 동기화됩니다. (I6f2d7)

버그 수정

  • Dismissible FrameLayout에서 기본적으로 뒤로 버튼 닫기 기능을 사용 중지합니다. 스와이프하여 닫기가 Wearable 기기에서 전체 화면으로 돌아가는 주요 방법으로 유지되기 때문입니다. (Ic24e3)
  • WearArcLayout에서 하위 가시성을 처리하는 몇 가지 문제를 수정했습니다. (Icf912).

버전 1.2.0-alpha05

2021년 1월 13일

androidx.wear:wear:1.2.0-alpha05가 출시되었습니다. 버전 1.2.0-alpha05에 포함된 커밋을 확인하세요.

버그 수정

  • 이 클래스의 일반적인 사용법을 더 효과적으로 보여주기 위해 샘플 스니펫을 제공하도록 AmbientModeSupport 클래스의 javadoc를 업데이트합니다.

버전 1.2.0-alpha04

2020년 12월 16일

androidx.wear:wear:1.2.0-alpha04가 출시되었습니다. 버전 1.2.0-alpha04에 포함된 커밋을 확인하세요.

API 변경사항

  • AmbientModeSupport 클래스에서 기기 대기 모드가 종료되면 활동이 '자동 재개'될 수 있음을 나타내는 지원을 추가했습니다. 이전에는 WearableSupportLibrary의 지원 중단된 WearableActivity 클래스에서 이 기능을 제공했습니다. (I336ab)
  • OngoingActivity
    • 이제 OngoingActivity를 생성할 때 카테고리를 설정할 수 있습니다(예: OngoingActivitiy.Builder.getCategory(String)).
    • OngoingActivityData에는 이제 OngoingActivity의 빌드 시점을 나타내는 타임스탬프가 있습니다(OngoingActivityData.getTimestamp()).
    • (I91cb4)
  • MarginLayoutParams를 확장하도록 레이아웃 매개변수를 변경하여 WearArcLayout의 하위 요소에 여백을 설정하는 지원을 추가했습니다. 즉, WearArcLayout.LayoutParams는 android.view.ViewGroup.MarginLayoutParams를 확장합니다. (I2cd88)
  • WearCurvedTextView의 앵커 유형 기본값을 WearArcLayout.ANCHOR_CENTER로 변경합니다(이전에는 WearArcLayout.ANCHOR_START). 이렇게 하면 원호 레이아웃과 구부러진 텍스트 사이의 수축이 간단해집니다. 즉, 구부러진 텍스트가 기본적으로 x축을 중심으로 그려지고 상위 원호 레이아웃은 이 텍스트를 필요한 위치로 회전시킬 수 있습니다. (I105ff)

버전 1.2.0-alpha03

2020년 12월 2일

androidx.wear:wear:1.2.0-alpha03이 출시되었습니다. 버전 1.2.0-alpha03에 포함된 커밋을 확인하세요.

새로운 기능

새 레이아웃 컨테이너인 DismissibleFrameLayout은 활동 내에서 사용되고 스와이프하여 닫기 또는 뒤로 버튼으로 닫기를 처리합니다. 닫기 작업을 처리할 리스너를 하나 이상 추가해야 합니다. 리스너는 일반적으로 포함하는 뷰나 프래그먼트를 현재 활동에서 삭제합니다. 기능을 직접 제어할 수 있도록 setSwipeDismissible(boolean) 및 setBackButtonDismissible(boolean)이 제공됩니다. 이 새로운 레이아웃은 기존의 SwipeDismissFrameLayout을 대체하기 위한 것입니다.

구부러진 위젯이 이제 터치 이벤트를 처리합니다. WearArcLayout 내부의 일반 위젯은 좌표 공간에 매핑된 모든 터치 이벤트를 수신합니다. WearCurvedTextView(WearArcLayout의 내부 여부에 상관없음)는 onClick 핸들러와 onLongClick 핸들러를 설정할 수 있습니다.

진행 중인 활동 클래스는 이제 맞춤 직렬화/역직렬화를 사용하지 않고 VersionedParcelable입니다. 이제 정적 아이콘과 터치 인텐트가 필요합니다.

API 변경사항

  • WearCurvedTextView의 'sweepDegrees' 속성이 minSweepDegrees와 maxSweepDegrees로 구분되어 이 위젯의 레이아웃을 더 유연하게 제공합니다.

버전 1.2.0-alpha02

2020년 11월 11일

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

이 릴리스에서는 새로운 'Ongoing Activities API'를 처음 추가했습니다. 개발자는 이 API를 사용하여 피트니스 운동이나 미디어 재생 세션과 같은 장시간 활동이 진행 중임을 알릴 수 있습니다. 이 API를 통해 개발자는 시계 모드 또는 앱 런처에 표시되도록 '달린 거리 및 시간' 또는 '재생 중인 현재 트랙' 같은 주기적인 상태 업데이트를 제공할 수 있습니다. 이 기능은 진행 중인 활동 기능이 사용 설정되는 미래 기기를 타겟팅합니다.

API 변경사항

  • 진행 중인 활동을 위한 새로운 API는 '지원되지 않는 기기'에서 노옵스(no-ops)입니다. (I69a31)

버전 1.2.0-alpha01

2020년 10월 28일

androidx.wear:wear:1.2.0-alpha01가 출시되었습니다. 버전 1.2.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • 뷰에 표현될 수 있는 가장 큰 원의 곡선에 따라 구부러진 텍스트가 쉽게 작성되도록 WearCurvedTextView 구성요소를 추가했습니다. 사용 예는 다음과 같습니다.
<androidx.wear.widget.WearCurvedTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="example curved text"
        app:anchorAngleDegrees="180"
        app:anchorPosition="center"
        app:clockwise="false"
        style="@android:style/TextAppearance.Large"
/>

Android Wear의 구부러진 텍스트 예

  • 원호에 시계 방향이나 시계 반대 방향으로 하위 요소를 하나씩 배치하는 WearArcLayout 컨테이너를 추가했습니다. 하위 요소는 ArcLayoutWidget 인터페이스를 구현하는 표준 Android 위젯 또는 '구부러진' 위젯일 수 있습니다. 사용 예는 다음과 같습니다.
<androidx.wear.widget.WearArcLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:anchorPosition="center">
      <ImageView
              android:layout_width="20dp"
              android:layout_height="20dp"
              android:src="@drawable/ic_launcher"
      />
      <androidx.wear.widget.WearCurvedTextView
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:text="Curved Text"
              style="@android:style/TextAppearance.Small"
              android:padding="2dp"
       />
  </androidx.wear.widget.WearArcLayout>

Android Wear의 아치 텍스트 예

(I536da)

Wear-Input 1.1.0

버전 1.1.0-rc01

2021년 8월 4일

androidx.wear:wear-input:1.1.0-rc01androidx.wear:wear-input-testing:1.1.0-rc01이 출시되었습니다. 버전 1.1.0-rc01에 포함된 커밋을 확인하세요.

androidx.wear:wear-input:1.1.0-beta01androidx.wear:wear-input-testing:1.1.0-beta01 이후 API가 변경되지 않았습니다.

버전 1.1.0-beta01

2021년 7월 21일

androidx.wear:wear-input:1.1.0-beta01androidx.wear:wear-input-testing:1.1.0-beta01 버전은 1.1.0-alpha03 이후 변경사항 없이 출시되었습니다. 버전 1.1.0-beta01에 포함된 커밋을 확인하세요.

버전 1.1.0-alpha03

2021년 6월 30일

androidx.wear:wear-input:1.1.0-alpha03androidx.wear:wear-input-testing:1.1.0-alpha03이 출시되었습니다. 버전 1.1.0-alpha03에 포함된 커밋을 확인하세요.

버그 수정

  • RemoteInputHelper.putRemoteInputsExtra를 통해 인텐트에 추가된 RemoteInput이 있는 RemoteInput 인텐트가 거부되는 버그를 수정했습니다.

버전 1.1.0-alpha02

2021년 5월 18일

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

API 변경사항

  • 제목, 취소, 확인, 진행 중 라벨을 나타내는 extras를 가져오거나 배치하는 데 사용되는 RemoteInputIntentHelper의 메서드가 이제 이러한 라벨에 String 대신 CharSequence를 사용합니다. (I0e71f)

버전 1.1.0-alpha01

2021년 1월 27일

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

API 변경사항

  • RemoteInputIntent 클래스를 Wearable 지원 라이브러리에서 AndroidX로 이전합니다. 이전된 클래스는 RemoteInputIntentHelper로 이름이 바뀌고 인텐트 시작을 통해 원격 입력을 지원하는 도우미 함수를 제공합니다. (I47cee)

Wear-Input 1.0.0

버전 1.0.0

2020년 12월 2일

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

이 버전은 1.0.0-rc01 버전과 동일합니다.

1.0.0의 주요 기능

  • WearableButtons 기능을 웨어러블 지원 라이브러리에서 Jetpack으로 이전합니다.

  • androidx.wear:wear-input 라이브러리로 개발된 애플리케이션의 테스트를 지원하는 androidx.wear.input.WearableButtonsProvider를 구현하는 androidx.wear.input.test.TestWearableButtonsProvider를 추가했습니다.

버전 1.0.0-rc01

2020년 11월 11일

androidx.wear:wear-input:1.0.0-rc01androidx.wear:wear-input-testing:1.0.0-rc01가 출시되었습니다. 버전 1.0.0-rc01에 포함된 커밋을 확인하세요.

이 버전은 1.0.0-beta01 버전과 동일합니다.

버전 1.0.0-beta01

2020년 10월 28일

androidx.wear:wear-input:1.0.0-beta01androidx.wear:wear-input-testing:1.0.0-beta01 버전은 1.1.0-alpha01 이후 변경사항 없이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.

Wear-Input-Testing 버전 1.0.0-alpha01

2020년 10월 14일

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

API 변경사항

  • androidx.wear:wear-input 라이브러리로 개발된 애플리케이션의 테스트를 지원하는 androidx.wear.input.WearableButtonsProvider를 구현하는 androidx.wear.input.test.TestWearableButtonsProvider를 추가했습니다. (I0ed0c)

Wear-Input 버전 1.0.0-alpha01

2020년 9월 2일

androidx.wear:wear-input:1.0.0-alpha01가 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

WearableButtons 기능을 웨어러블 지원 라이브러리에서 Jetpack으로 이전합니다. 추가 테스트 지원은 다음 Jetpack 출시의 androidx.wear:wear-input-testing 라이브러리에서 제공됩니다.

버전 1.1.0

버전 1.1.0

2020년 10월 14일

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

1.0.0 이후 주요 변경사항

  • Android 이름 지정 규칙을 준수하기 위해 BoxInsetLayout의 boxedEdges 속성(현재 layout_BoxedEdges)에 layout_ 접두사가 추가되었습니다. 이렇게 하면 Android 스튜디오에서 이 속성의 린터 오류가 삭제됩니다. (I4272f 참조)
  • 확인 대화상자가 표시되는 기간을 허용하도록 선택사항인 EXTRA_ANIMATION_DURATION_MILLISConfirmationActivity에 추가되었습니다. (adb83ce, b/143356547 참조)
  • 창이 처음 열릴 때까지 작업 창 확장을 지연하는 WearableActionDrawView가 업데이트되었습니다. (I01026, b/163870541)

버전 1.1.0-rc03

2020년 9월 2일

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

버그 수정

  • 작업 창이 열릴 때 내용이 표시되지 않는 문제가 해결되었습니다. (I01026, b/163870541)

버전 1.1.0-rc02

2020년 6월 24일

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

버그 수정

  • Android 이름 지정 규칙을 준수하기 위해 BoxInsetLayout의 boxedEdges 속성(현재 layout_boxedEdges)에 layout_ 접두사가 추가되었습니다. 이렇게 하면 Android 스튜디오에서 이 속성의 린터 오류가 삭제됩니다.

버전 1.1.0-rc01

2020년 5월 14일

androidx.wear:wear:1.1.0-rc01.1.0-beta01 이후 변경사항 없이 출시되었습니다. 버전 1.1.0-rc01에 포함된 커밋을 확인하세요.

버전 1.1.0-beta01

2020년 4월 29일

androidx.wear:wear:1.1.0-beta01androidx.wear:wear:1.1.0-alpha01 이후 변경사항 없이 출시되었습니다. 버전 1.3.0-beta01에 포함된 커밋을 확인하세요.

버전 1.1.0-alpha01

2020년 4월 15일

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

API 변경사항

  • 확인 대화상자가 표시되는 기간을 허용하도록 선택사항인 EXTRA_ANIMATION_DURATION_MILLISConfirmationActivity에 추가되었습니다. (adb83ce, 134523c, b/143356547)

버그 수정

  • 창이 처음 열릴 때까지 작업 창 확장을 지연하는 WearableActionDrawView가 업데이트되었습니다. (5cd32f7)