소매 데모 모드

Android 7.1.1에서는 고객이 소매점에서 작동 중인 기기를 살펴볼 수 있도록 소매 데모 모드에 대한 시스템 수준 지원을 도입했습니다. 장치 사용이 특정 데모 모드 앱으로만 제한되도록 장치 소유자 앱을 사용하여 소매 데모용으로 장치를 설정합니다. 최종 사용자는 소매 데모 장치에 개인 계정을 추가할 수 없어야 합니다. Android 8.1에서는 DevicePolicyManager createAndManageUser API를 통해 데모 사용자를 생성하도록 이 지원을 수정했습니다. 이를 통해 데모 장치의 사용자 관리 및 장치 정책 관리 측면에서 표준 소매 모드에 대한 OEM 사용자 정의가 훨씬 더 많이 가능해졌습니다.

DevicePolicyManager API는 Android 8.1 이전 버전에서 사용할 수 있지만 버전 8.0 이하에서는 createAndManageUser API를 사용 하여 데모 유형 사용자( DevicePolicyManager.MAKE_USER_DEMO )를 생성할 수 없습니다.

Android 8.1 이상에서 구현

이 섹션에서는 플랫폼 개선 사항을 강조하고 Android 8.1 이상의 소매 데모 앱에 대해 설명합니다.

플랫폼 변경

DEVICE_DEMO_MODE 설정

장치 소유자 기반 소매 데모 모드를 구현하는 장치는 장치가 소매 데모 모드용으로 프로비저닝되고 있음을 나타내기 위해 프로비저닝하기 전에 Settings.Global.DEVICE_DEMO_MODE 를 1로 설정해야 합니다. SystemServer는 이 플래그를 사용하여 전원 프로필 및 SystemUI와 같은 소매 모드의 측면을 관리합니다.

RetailDemoModeService 활성화

소매 데모 모드를 구현하는 장치에서 설정 마법사는 전역 설정 Global.DEVICE_DEMO_MODE true 로 설정하여 장치가 소매 모드로 전환되었음을 나타냅니다. 이 설정을 보면 RetailDemoModeService는 데모 사용자를 생성하고 사용자 0이 시작될 때 이 사용자로 전환하고 오버레이 리소스에 지정된 사용자 지정 실행 프로그램을 활성화하고 SUW를 비활성화합니다. 시스템 서버 및 SystemUI도 이 플래그를 사용하여 소매 모드의 측면을 관리합니다.

맞춤 런처 또는 비디오 플레이어 설정

장치 제조업체는 다음과 같이 config.xml 파일에 지정된 프레임워크 리소스 config_demoModeLauncherComponent 재정의하여 사용자 지정 실행 프로그램을 지정할 수 있습니다.

<!-- Component that is the default launcher when Retail Mode is enabled. -->
<string name="config_demoModeLauncherComponent">com.android.retaildemo/.DemoPlayer</string>

/packages/apps/RetailDemo 에 있는 소매 데모 DemoPlayer 앱은 AOSP(Android 오픈 소스 프로젝트)의 기본 맞춤 실행 프로그램입니다. 앱은 /data/preloads/demo/retail_demo.mp4와 같은 기기 파티션에서 비디오를 찾아 루프에서 재생합니다. 사용자가 화면을 터치하면 맞춤 실행 프로그램이 활동 구성요소를 비활성화하여 기본 시스템 실행 프로그램이 시작됩니다.

사용자 지정 실행 프로그램에는 데모가 아닌 시나리오에서 표시되지 않도록 기본적으로 비활성화된 것으로 표시된 사용자 지정 구성 요소가 있어야 합니다. 데모 시나리오에서 시스템 서버는 새 데모 세션을 시작할 때 지정된 config_demoModeLauncherComponent 활성화합니다.

또한 설정 마법사는 소매 모드로 전환하기 위한 어포던스를 제공하기 위해 앞서 언급한 비디오를 찾습니다. 비디오가 데모의 일부가 아닌 경우 소매 모드가 지원된다는 다른 OEM별 표시를 찾도록 SUW를 수정할 수 있습니다. 시스템 A/B 파티션이 있는 경우 시스템 B 파티션의 /preloads/demo에 데모 비디오가 포함되어 있어야 합니다. 이는 처음 부팅할 때 /data/preloads/demo에 복사됩니다.

소매 데모 모드를 위해 사전 로드된 앱을 사용자 정의하세요

사전 로드된 앱은 앱이 데모 환경에서 실행되는지 확인하기 위해 UserManager.isDemoUser() API를 호출하여 소매 데모 모드에 대한 환경을 사용자 정의할 수 있습니다.

앱과 사용자가 특정 작업을 수행하지 못하도록 방지하는 관리 장치 또는 프로필 정책과 유사하게 데모 사용자에게 특정 제한 사항이 설정됩니다. 이러한 제한 사항 중 하나는 DISALLOW_MODIFY_ACCOUNTS 입니다. 이 제한으로 인해 AccountManager설정은 계정 추가를 허용하지 않습니다. 일부 Google 앱은 이러한 제한에 반응하여 오류 메시지를 표시하며 다른 앱에서는 계정을 묻는 메시지를 표시하지 않습니다(예: YouTube 및 사진). OEM 앱도 DISALLOW_MODIFY_ACCOUNTS 설정되어 있는지 확인하고 이에 따라 시나리오를 처리하는 것이 좋습니다.

시스템 업데이트

기본적으로 소매 모드가 활성화되면 장치 정책이 자동으로 OTA(무선) 업데이트로 설정됩니다. 소매 장치는 사용자 개입 없이 업데이트를 다운로드, 재부팅 및 설치합니다(배터리 임계값 고려).

소매 데모 앱

기기 소유자 기반 소매 데모 모드를 구현하려면 기기 정책 컨트롤러 앱을 기기 소유자로 설정해야 합니다. AOSP에는 /packages/apps/RetailDemo 에 참조 RetailDemo 앱 구현이 포함되어 있습니다.

기기 소유자 앱은 시스템 이미지에 대한 높은 권한이나 사전 설치가 필요하지 않으며 설정 또는 프로비저닝 프로세스 중에 다운로드할 수 있습니다. 이들은 대부분 기존 앱처럼 구현되지만 다음과 같은 차이점이 있습니다.

DevicePolicyManager 클래스의 API를 사용하면 DO(장치 소유자) 및 PO(프로필 소유자)가 다양한 장치 정책을 시행할 수 있습니다. 소매 데모 모드에 적용 가능한 DevicePolicyManager 기능 중 일부는 다음과 같습니다.

  • 사용자를 생성하고 관리합니다.

  • 장치를 재부팅하십시오.

  • LockTask 허용 패키지를 설정합니다.

  • PackageInstaller를 통해 패키지를 설치합니다.

  • 패키지가 제거되지 않도록 차단합니다.

  • 자동 시스템 업데이트를 활성화합니다. 장치는 자동으로 OTA 업데이트를 다운로드하고 적용합니다.

  • 키가드를 비활성화합니다.

  • 비밀번호나 지문 설정을 방지하세요.

  • 허용 목록에 있는 Settings.Global , Settings.SecureSettings.System 설정 세트를 설정합니다.

  • 권한 정책을 PERMISSION_POLICY_AUTO_GRANT 로 설정하면 모든 런타임 권한이 자동으로 부여됩니다. 권한은 더 좁게 부여될 수도 있습니다(단일 앱에 대한 단일 권한). 이는 사용자가 여전히 사용자별, 앱별로 부여해야 하는 앱 운영 권한에는 적용되지 않습니다.

  • 다음과 같이 UserManager 에 정의된 대로 소매 모드와 관련된 사용자 제한을 설정합니다.

    • DISALLOW_MODIFY_ACCOUNTS
    • DISALLOW_USB_FILE_TRANSFER
    • DISALLOW_DEBUGGING_FEATURES
    • DISALLOW_CONFIG_WIFI
    • DISALLOW_CONFIG_BLUETOOTH
    • DISALLOW_INSTALL_UNKNOWN_SOURCES
    • DISALLOW_CONFIG_MOBILE_NETWORKS

웹을 사용하여 데모 비디오 업데이트

/packages/apps/RetailDemo 의 RetailDemo 앱에는 네트워크 연결이 있는 경우 데모 비디오를 업데이트하는 기능이 있습니다. 비디오를 다운로드할 URL은 RetailDemo 앱에서 다음 문자열 값을 재정의하여 구성할 수 있습니다.

<!-- URL where the retail demo video can be downloaded from. -->
<string name="retail_demo_video_download_url"></string>

다른 지역에서 다른 비디오를 사용해야 하는 경우 res/values-*/strings.xml 에서 로케일별 문자열 리소스를 사용하여 다른 다운로드 URL을 구성할 수 있습니다. 예를 들어, 미국과 영국에서 서로 다른 비디오를 사용해야 하는 경우 해당 다운로드 URL을 res/values-en-rUS/strings.xml 및 res/values-en-rGB/strings.xml에 배치할 수 있습니다. , 각각 다음과 같이 표시됩니다.

  • res/values-en-rUS/strings.xml에서:

    <string name="retail_demo_video_download_url">download URL for US video goes here</string>
    
  • res/values-en-rGB/strings.xml에서:

    <string name="retail_demo_video_download_url">download URL for UK video goes here</string>
    

이 동영상은 기기를 재부팅할 때마다 최대 한 번 다운로드됩니다. 장치의 비디오가 재생될 때 RetailDemo 앱은 다운로드 URL이 제공되고 해당 URL의 비디오가 재생 중인 비디오보다 최신인지 백그라운드에서 확인합니다.

그렇다면 RetailDemo 앱이 비디오를 다운로드하고 재생하기 시작합니다. 비디오가 다운로드되면 앞으로의 모든 데모 세션에서 재생되는 데 사용됩니다. 다음 재부팅이 완료될 때까지 어떠한 확인도 다시 발생하지 않습니다.

데모 비디오 지침

데모 비디오는 세로 레이아웃이어야 하며 태블릿의 경우 기기의 자연스러운 방향이어야 하며 길이는 5초를 초과할 수 있습니다. 콘텐츠는 화면에 표시될 때 지속적으로 재생되므로 번인이 발생해서는 안 됩니다.

자세한 내용은 사용자, 프로필 및 계정에 대한 Android 개발자 정의 , Device Policy Manager API 문서샘플 장치 소유자 앱을 참조하세요.

확인

CTS는 선택적 기능이므로 소매 데모 모드를 지원하지 않습니다. 테스트는 수동으로 수행하거나 데모 앱에 대한 단위 테스트를 통해 수행해야 합니다.

데모 세션

데모 세션 설정

소매 데모 장치는 공장에서 데모 모드로 구성된 경우 소매 데모 모드로 부팅될 수 있습니다. 또는 소매점 직원이 설정 마법사에서 직접 소매 모드를 활성화할 수도 있습니다.

Retail demo mode

그림 2. 소매 데모 모드

데모 세션 표시

장치가 소매 모드로 전환되면 새 데모 사용자로 전환되고 구현 에 설명된 대로 오버레이 리소스에 지정된 사용자 지정 실행 프로그램이 자동으로 시작됩니다. 기본적으로 이 사용자 정의 실행 프로그램은 사용자가 데모 사용자 세션을 시작하기 위해 화면을 터치할 때까지 데모 비디오를 반복해서 재생합니다. 이때 사용자 정의 런처는 시스템 런처를 시작한 후 종료됩니다. OEM은 종료 시 다른 서비스나 활동을 추가로 시작하도록 사용자 정의 실행 프로그램을 변경할 수 있습니다.

소매 모드의 무결성을 유지하기 위해 키가드가 비활성화되며 다음을 포함하여 소매 모드에 부정적인 영향을 미칠 수 있는 빠른 설정의 특정 작업도 허용되지 않습니다.

  • 비행기 모드 토글.
  • Wi-Fi 액세스 포인트 제거 또는 수정(설정)
  • 이동통신사 변경(설정)
  • 핫스팟 구성(설정).
  • 사용자 전환.

또한 다음을 비활성화하면 소매 모드에 영향을 미칠 수 있는 일부 전역 설정에 대한 액세스도 차단됩니다.

  • Wi-Fi 설정.
  • 셀룰러 네트워크 구성 옵션, 특히 핫스팟.
  • 블루투스 구성.
  • 백업 및 재설정, 날짜 및 시간, 모바일 네트워크(전혀 표시되지 않음)

사용자가 일정 시간(기본적으로 90초) 동안 유휴 상태인 경우 소매 모드에서는 사용자에게 세션을 종료할지 아니면 계속할지 묻는 시스템 대화상자가 표시됩니다. 사용자가 종료를 선택하거나 5초 동안 응답이 없으면 소매 모드에서는 현재 데모 사용자를 제거하고 새 데모 사용자로 전환한 다음 원본 비디오를 다시 반복합니다. 전원 버튼을 사용하여 화면을 끄면 몇 초 후에 자동으로 다시 켜집니다.

데모 세션을 종료한 후 장치는 자동으로 음소거되고 다음을 포함한 일부 전역 설정을 재설정합니다.

  • 명도
  • 자동 회전
  • 플래시
  • 언어
  • 접근성

소매 데모 모드 종료

소매점 모드를 종료하려면 소매점 직원은 데모 장치가 장치 관리에 등록되어 있지 않은지 확인하고 부트로더에서 장치를 공장 초기화해야 합니다.