Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

USB를 통한 데이터 신호 사용 중지

Android 12에서는 IT 관리자가 회사 소유 기기에서 USB를 통한 데이터 신호를 사용 중지하는 기능이 추가되었습니다(충전 기능 제외). 이 기능을 지원하려면 OEM은 USB HAL을 업데이트하고 추가된 기기 정책 관리자 API 지원을 활용해야 합니다.

기기 정책 관리자

USB를 통한 신호 사용 중지를 지원하기 위해 다음 세 가지 공개 API가 DevicePolicyManager에 포함되어 있습니다.

  • setUsbDataSignalingEnabled(boolean enabled)UsbManager에서 enableUsbDataSignal API를 호출하여 USB 데이터 신호를 사용 설정하거나 사용 중지하는 API입니다.
  • canUsbDataSignalingBeDisabled()는 USB 데이터 신호 사용 설정 또는 사용 중지가 기기에서 지원되는지 확인하는 API입니다.
  • isUsbDataSignalingEnabled()는 USB 데이터 신호가 사용 설정되었는지 확인하는 API입니다.
    • 이는 정책 투명성 대화상자 창이 표시되는지 확인하는 데 필요합니다. 시스템 사용자는 시스템 사용자에서 호출할 수 있는 이 특정 API의 숨겨진 변형을 호출하여 USB 데이터 신호가 특정 사용자에게 사용 설정되었는지 확인할 수 있습니다.
  • 기기 정책 관리자 구현 예

    다음은 기기 정책 관리자를 구현하는 방법을 보여주는 예입니다.
    class android.app.admin.DevicePolicyManager {
        /**
         * Called by device owner or profile owner of an organization-owned managed profile to
         * enable or disable USB data signaling for the device. When disabled, USB data connections
         * (except from charging functions) are prohibited.
         *
         * <p> This API is not supported on all devices, the caller should call
         * {@link #canUsbDataSignalingBeDisabled()} to check whether enabling or disabling USB data
         * signaling is supported on the device.
         *
         * @param enabled whether USB data signaling should be enabled or not.
         * @throws SecurityException if the caller is not a device owner or a profile owner on
         *         an organization-owned managed profile.
         * @throws IllegalStateException if disabling USB data signaling is not supported or
         *         if USB data signaling fails to be enabled/disabled.
         */
        public void setUsbDataSignalingEnabled(boolean enabled);
    
    /** * Called by device owner or profile owner of an organization-owned managed profile to return * whether USB data signaling is currently enabled by the admin. * * @return {@code true} if USB data signaling is enabled, {@code false} otherwise. */ public boolean isUsbDataSignalingEnabled();
    /** * Called by the system to check whether USB data signaling is currently enabled for this user. * * @param userId which user to check for. * @return {@code true} if USB data signaling is enabled, {@code false} otherwise. * @hide */ public boolean isUsbDataSignalingEnabledForUser(@UserIdInt int userId);
    /** * Returns whether enabling or disabling USB data signaling is supported on the device. * * @return {@code true} if the device supports enabling and disabling USB data signaling. */ public boolean canUsbDataSignalingBeDisabled();

    설정

    사용자는 USB가 연결되자마자 USB 환경설정과 테더링 설정을 수정할 수 있습니다. USB 환경설정 화면에 액세스하려면 다음을 실행하세요.

    1. 설정을 탭합니다.
    2. 연결된 기기를 탭합니다.
    3. USB를 탭합니다.

    참고: USB가 연결되어 있지 않으면 USB 환경설정을 수정할 수 없고 환경설정이 연결된 기기 창에 표시되지 않습니다.

    IT 관리자가 회사 소유 기기에서 USB 데이터 신호를 사용 중지하면 사용자는 USB 환경설정을 수정할 수 없습니다. 대신 설정의 모든 USB 환경설정이 완전히 사용 중지되어 정책 투명성 대화상자 창이 만들어집니다.

    참고: USB 데이터 신호가 사용 중지되면 USB 디버깅과 기본 USB 구성, USB 오디오 라우팅 환경설정이 모두 개발자 옵션에서 사용 중지됩니다.