EMM에 앱에 관한 의견 보내기

엔터프라이즈 모바일 관리 (EMM) 제공업체는 Android 기기 및 기기에 설치된 앱을 관리할 수 있는 솔루션을 조직에 제공합니다. 이러한 솔루션은 일반적으로 EMM 콘솔이라는 웹 콘솔로 제공됩니다. IT 관리자는 EMM 콘솔을 사용하여 조직을 대신하여 기기 및 앱 관리 작업을 수행합니다.

기업 조직을 타겟팅하는 앱은 키 앱 상태 형식으로 EMM에 의견을 보낼 수 있습니다. EMM은 키가 지정된 앱 상태 데이터를 검색하여 EMM 콘솔에 표시할 수 있는 API를 사용할 수 있습니다. 이 통신 채널을 통해 IT 관리자는 자신이 관리하는 기기에 설치된 앱의 상태에 관한 의견을 받을 수 있습니다.

예를 들어 이메일 클라이언트 앱은 키가 지정된 앱 상태를 사용하여 계정이 성공적으로 구성되었는지 확인하거나 동기화 오류가 발생하면 보고하거나 앱 개발자가 적절하다고 생각하는 기타 상태 업데이트를 전송할 수 있습니다.

키가 지정된 앱 상태의 구성요소

키가 지정된 앱 상태는 다음과 같이 구성됩니다.

  • 키: 앱 상태의 고유 식별자입니다. 최대 100자(영문 기준)까지 허용됩니다.
  • 메시지: 앱 상태를 설명하는 메시지(선택사항)입니다. 최대 1,000자(영문 기준) 참고: 일반적으로 메시지의 길이는 이보다 훨씬 짧아야 합니다.
  • 데이터: IT 관리자가 값을 기반으로 알림 또는 필터를 설정할 수 있도록 EMM용으로 사용되는 컴퓨터에서 읽을 수 있는 값(선택사항)입니다. 예를 들어 IT 관리자는 데이터 필드가 battery_percentage < 10인 경우 알림을 설정할 수 있습니다. 최대 1,000자(영문 기준)
  • 심각도: 앱 상태의 심각도입니다. 허용되는 값은 SEVERITY_ERRORSEVERITY_INFO(기본값)입니다. 조직에서 문제 해결을 위해 조치를 취해야 하는 실제 오류 상태의 경우에만 심각도를 SEVERITY_ERROR로 설정하세요.
  • 타임스탬프: 키가 지정된 앱 상태가 설정되면 에포크 이후 밀리초 단위의 타임스탬프와 함께 자동으로 전송됩니다.

관리 구성 의견 보내기

앱이 관리 구성을 지원하는 경우 IT 관리자에게 설정된 구성 상태를 업데이트하기 위한 방법으로 키 앱 상태를 전송하는 것이 좋습니다. 다음 워크플로 예시에서는 이 작업을 실행하는 한 가지 방법을 설명합니다.

관리 구성에 대한 키가 지정된 앱 상태
  1. IT 관리자는 EMM 콘솔을 사용하여 완전 관리형 기기 또는 직장 프로필 내에 설치된 앱의 관리 구성을 설정하고 전송합니다. 예를 들면 다음과 같습니다.
    • 볼륨: '50%'
    • 통화: 'USDD'
  2. 앱이 구성을 적용하려고 합니다. 볼륨이 50%로 성공적으로 설정되었지만 통화 코드가 잘못되어 적용할 수 없습니다.
  3. 각 구성의 상태에 따라 앱은 키가 지정된 앱 상태를 설정합니다. 키가 지정된 각 앱 상태에는 고유 키와 상태 세부정보가 포함된 메시지가 포함됩니다. 가능한 경우 관리 구성 키를 일치시키는 것이 좋습니다. 예:
    메시지 심각도 타임스탬프
    volume 50%로 설정 SEVERITY_INFO 1554461130
    currency 'USDD' 통화를 인식할 수 없습니다. SEVERITY_ERROR 1554461130
  4. EMM 공급자는 앱에서 설정한 키가 지정된 앱 상태를 검색하여 EMM 콘솔에 표시합니다. 예:
    구성 상태 조치 필요 Time
    볼륨 50%로 설정 아니요 2019년 4월 5일 오전 10:45:30
    통화 오류: 'USDD' 통화를 인식할 수 없습니다. 2019년 4월 5일 오전 10:45:30

    또한 EMM 제공업체는 SEVERITY_ERROR를 사용하여 모든 수신된 상태를 IT 관리자에게 명시적으로 플래그해야 합니다. IT 관리자는 EMM 콘솔에서 정보를 확인하고 설정한 구성의 오류를 수정하기 위한 조치를 취할 수 있습니다.

해결된 오류 보고

오류가 해결되면 EMM이 무기한으로 오류 메시지를 표시하지 않도록 즉시 후속 앱 상태를 전송합니다. 이 후속 상태에는 다음이 포함되어야 합니다.

  • 초기 오류 메시지와 동일한 입니다.
  • 심각도 SEVERITY_INFO: 상태가 오류 상태가 아니며 조직에서 추가 조치를 취할 필요가 없음을 나타냅니다.

앱에 키가 지정된 앱 상태 지원 추가

아래 단계에서는 앱에 주요 앱 상태를 통합하는 방법을 설명합니다.

1단계: settings.gradle 파일에 Google Maven 저장소 추가

아래와 같이 프로젝트의 settings.gradle 파일에 Google의 Maven 저장소를 저장소 위치로 추가합니다.

dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
       google()
  }
}

2단계: 모듈 수준 build.gradle 파일에 엔터프라이즈 의견 라이브러리 추가

모듈 수준 build.gradle 파일에 다음 종속 항목을 추가합니다.

dependencies {
    implementation 'androidx.enterprise:enterprise-feedback:1.0.0'
}

3단계: KeyedAppStatesReporter의 인스턴스 가져오기

onCreate() 메서드에서 KeyedAppStatesReporter의 인스턴스를 가져와 저장합니다. 이를 통해 앱과 EMM 제공업체 간에 통신 채널이 활성화됩니다.

Kotlin

val reporter = KeyedAppStatesReporter.create(context)

Java

KeyedAppStatesReporter reporter = KeyedAppStatesReporter.create(context);

4단계: 주요 앱 상태 컬렉션 만들기

키가 지정된 앱 상태를 만들 때는 아래에 설명된 권장사항을 따르세요.

  • 상태에 개인 식별 정보 (PII)를 포함하면 안 됩니다. 키 앱 상태는 민감한 정보에 적합하지 않습니다.
  • 키가 지정된 앱 상태를 MAX_KEY_LENGTH, MAX_MESSAGE_LENGTH, MAX_DATA_LENGTH에 정의된 제한 내로 유지합니다.
  • 단일 setStates 또는 setStatesImmediate 호출은 총 300KB (하루 저장 가능한 총 저장량의 약 1/3)로 제한됩니다. 이를 초과하면 정의되지 않은 동작이 발생합니다.
  • 조직에서 문제 해결을 위해 조치를 취해야 하는 조건이 있는 경우에만 상태의 심각도를 SEVERITY_ERROR로 설정하세요.
  • 오류가 포함된 앱 상태를 전송할 때는 오류가 해결되었을 때 EMM이 콘솔에서 오류 신고를 중지할 수 있도록 후속 상태도 전송해야 합니다.
  • 후속 조치 상태의 경우 오류를 반환한 초기 상태와 동일한 를 사용하고 심각도를 SEVERITY_INFO로 설정합니다.

아래 스니펫은 키가 지정된 앱 상태 모음을 만듭니다.

Kotlin

    val states = hashSetOf(KeyedAppState.builder()
             .setKey("key")
             .setSeverity(KeyedAppState.SEVERITY_INFO)
             .setMessage("message")
             .setData("data")
             .build())
    

Java

    Collection states = new HashSet<>();
    states.add(KeyedAppState.builder()
     .setKey("key")
     .setSeverity(KeyedAppState.SEVERITY_INFO)
     .setMessage("message")
     .setData("data")
     .build());
    

5단계: 키가 지정된 앱 상태 설정

setStates() 메서드는 기기 또는 직장 프로필의 관리자와 기기에 설치된 경우 키가 지정된 앱 상태를 Play 스토어 앱 (패키지 이름: com.android.vending)으로 즉시 전송합니다.

Kotlin

keyedAppStatesReporter.setStates(states)

Java

keyedAppStatesReporter.setStates(states);

키가 지정된 앱 상태 테스트

자세한 테스트 안내는 앱 의견 테스트를 참고하세요.