콘텐츠로 건너뛰기

자주 방문한 페이지

최근 방문한 페이지

navigation

도킹 상태와 유형 확인 및 모니터링

Android 기기는 여러 가지 종류의 도크에 도킹할 수 있습니다. 여기에는 차량/홈 도크와 디지털/아날로그 도크가 포함됩니다. 많은 도크가 도킹된 기기에 전원을 제공하므로 통상 도킹 상태는 충전 상태와 밀접하게 연결되어 있습니다.

휴대폰의 도킹 상태가 업데이트 비율에 미치는 영향은 앱에 따라 다릅니다. 예컨대 데스크톱 도크에 있을 때는 스포츠 센터 앱의 업데이트 빈도를 높이고 기기가 차량에 도킹되어 있을 때는 업데이트를 완전히 비활성화할 수 있습니다. 반대로 백그라운드 서비스가 교통 상황을 업데이트 중이라면 차량에 도킹되어 있을 때 업데이트를 최대화할 수도 있습니다.

도킹 상태는 접착식 Intent로 브로드캐스팅되어서 기기가 도킹되어 있는지, 기기가 도킹되어 있다면 어떤 유형의 도크인지 쿼리할 수 있습니다.

현재 도킹 상태 확인

도킹 상태 세부정보는 ACTION_DOCK_EVENT 작업의 접착식 브로드캐스트에 엑스트라로 포함됩니다. 접착식이므로 BroadcastReceiver를 등록하지 않아도 됩니다. 다음 스니펫에서 보여주듯이 registerReceiver()를 호출하여 브로드캐스트 수신기로 null을 전달하면 됩니다.

IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
Intent dockStatus = context.registerReceiver(null, ifilter);

EXTRA_DOCK_STATE 엑스트라에서 현재 도킹 상태를 추출할 수 있습니다.

int dockState = battery.getIntExtra(EXTRA_DOCK_STATE, -1);
boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;

현재 도크 유형 확인

기기가 도킹되어 있다면 네 가지 유형의 도크 중 하나에 도킹됩니다.

마지막 두 가지 옵션은 Android API 레벨 11에서만 도입되었습니다. 여러분은 도크 유형에만 관심이 있으므로 디지털인지 아날로그인지 구체적으로 확인하기보다는 세 가지를 모두 확인하는 것이 좋습니다.

boolean isCar = dockState == EXTRA_DOCK_STATE_CAR;
boolean isDesk = dockState == EXTRA_DOCK_STATE_DESK ||
                 dockState == EXTRA_DOCK_STATE_LE_DESK ||
                 dockState == EXTRA_DOCK_STATE_HE_DESK;

도크 상태 또는 유형 변화 모니터링

기기를 도킹하거나 도킹을 해제할 때마다 ACTION_DOCK_EVENT 작업이 브로드캐스트됩니다. 기기의 도크 상태 변화를 모니터링하려면 아래 스니펫과 같이 애플리케이션 매니페스트에서 브로드캐스트 수신기를 등록하면 됩니다.

<action android:name="android.intent.action.ACTION_DOCK_EVENT"/>

이전 단계에서 설명한 것과 같은 기술을 사용하여 수신기 구현 내에서 도크 유형과 상태를 추출할 수 있습니다.

이 사이트는 쿠키를 사용하여 사이트별 언어 및 표시 옵션에 대한 환경설정을 저장합니다.

Google Play에서 성공을 거두는 데 도움이 되는 최신 Android 개발자 뉴스 및 도움말을 받아 보세요.

* 필수 입력란

완료되었습니다.

WeChat에서 Google Developers 팔로우하기

이 사이트를 (으)로 탐색할까요?

페이지를 요청했지만 이 사이트의 언어 환경설정은 입니다.

언어 환경설정을 변경하고 이 사이트를 (으)로 탐색할까요? 언어 환경설정을 나중에 변경하려면 각 페이지 하단의 언어 메뉴를 사용하세요.

이 클래스를 사용하려면 API 수준 이상이 필요합니다.

문서에 대해 선택한 API 수준이 이므로 이 문서가 표시되지 않습니다. 왼쪽 탐색 메뉴의 선택기로 문서 API 수준을 변경할 수 있습니다.

앱에 필요한 API 수준 지정에 관한 자세한 내용은 다양한 플랫폼 버전 지원을 참조하세요.

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)