傳送應用程式意見回饋給 EMM

企業行動管理服務 (EMM) 供應商可為機構提供解決方案 管理 Android 裝置和裝置上安裝的應用程式。這些解決方案 通常做為 EMM 控制台的網路控制台。使用 EMM 控制台,IT 管理員會代替使用者執行裝置和應用程式管理工作 並根據貴機構的使命 價值觀和目標進行調整

以企業為目標對象的應用程式可以向 EMM 傳送意見回饋,形式如下: 含有鍵的應用程式狀態。EMM 可使用 API 擷取金鑰的應用程式狀態資料。 以便在 EMM 控制台中顯示。這個通訊管道 允許 IT 管理員針對已安裝的應用程式的狀態接收意見回饋 控管裝置

舉例來說,電子郵件用戶端應用程式可以使用按鍵應用程式狀態,確認 帳戶設定成功、在發生同步處理錯誤時回報,或者傳送任一 其他狀態更新,應用程式開發人員認為適當方式。

帶鍵應用程式狀態的元件

以下為已鍵的應用程式狀態:

  • 鍵:應用程式狀態的專屬 ID。長度上限為 100 個半形字元。
  • 訊息:描述應用程式狀態的選用訊息。上限:1,000 字元。注意:一般來說,訊息的字數不應超過這個值。
  • 資料:供 IT 管理員使用的機器可讀取值 (選用) 即可根據值設定快訊或篩選器舉例來說,IT 管理員 設定在資料欄位 battery_percentage < 10 時快訊。上限:1,000 字元。
  • 嚴重性: 應用程式狀態的嚴重性。允許的值如下: SEVERITY_ERROR敬上 和 SEVERITY_INFO (預設)。僅將嚴重性設為「SEVERITY_ERROR」 是機構必須採取行動修正的實際錯誤狀況。
  • 時間戳記: 設定鍵的應用程式狀態後,系統會自動傳送 時間戳記,以毫秒為單位自 Epoch 紀元時間起算。

針對受管理的設定提供意見

如果您的應用程式支援受管理設定, 建議傳送具有金鑰的應用程式狀態,做為更新 IT 管理員的 所設設定的狀態以下工作流程範例說明 透過其中一種方法達成上述目標

受管理設定的 Keyed 應用程式狀態
  1. IT 管理員可使用 EMM 控制台調整及傳送受管理的設定 安裝在全代管裝置上的應用程式 或在工作資料夾內存取。 例如:
    • 音量:50%
    • 貨幣:「USDD」
  2. 應用程式嘗試套用設定。已成功設定音量 變更為 50%,但貨幣代碼無效,因此無法使用。
  3. 應用程式會根據各項設定的狀態,設定具有金鑰的應用程式狀態。 每個含有金鑰的應用程式狀態都含有專屬金鑰,以及一則附有詳細資料 時間。建議您盡可能比對受管理的設定鍵。 例如:
    訊息 嚴重程度 時間戳記
    volume 設為 50% SEVERITY_INFO 1554461130
    currency 貨幣「USDD」無法辨識 SEVERITY_ERROR 1554461130
  4. EMM 供應商會擷取應用程式設定的按鍵應用程式狀態,然後顯示 。例如:
    設定 狀態 敬請採取行動 時間
    音量 設為 50% 2019 年 4 月 5 日;上午 10:45:30
    幣別 錯誤:貨幣「USDD」無法辨識。 2019 年 4 月 5 日;上午 10:45:30

    EMM 供應商也應明確標記收到的狀態有 SEVERITY_ERROR敬上 IT 管理員IT 管理員可以查看 EMM 控制台中的資訊 採取行動來修正所設設定中的所有錯誤

回報已解決的錯誤

錯誤解決後,立即傳送後續追蹤應用程式狀態至 防止 EMM 無限期顯示錯誤訊息。這則後續追蹤 狀態應包含:

  • 相同金鑰 做為初始錯誤訊息
  • 嚴重性為 SEVERITY_INFO。 表示狀態未處於錯誤狀況,且沒有 機構必須採取進一步行動。

在應用程式中新增帶鍵應用程式狀態的支援功能

下列步驟說明如何在應用程式中整合帶鍵的應用程式狀態。

步驟 1:將 Google 的 Maven 存放區新增至 settings.gradle 檔案

在專案的 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_LENGTHMAX_MESSAGE_LENGTH, 和 MAX_DATA_LENGTH
  • 單次 setStatessetStatesImmediate 呼叫總計上限為 300 KB (每天可儲存的總量約為 1/3)。超過這個上限時,系統就會產生未定義的行為。
  • 您只能將狀態的嚴重性設為 SEVERITY_ERROR敬上 如果有條件存在,指出機構必須採取行動來修正。
  • 傳送包含錯誤的應用程式狀態時,請務必一併傳送 錯誤修正後的後續追蹤狀態,讓 EMM 可以停止標記 導致遊戲控制台發生錯誤
  • 如果是後續追蹤狀態,請使用相同的 key 做為 傳回錯誤的初始狀態,並將嚴重性設為 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);

測試金鑰的應用程式狀態

如需詳細的測試操作說明,請參閱「測試應用程式意見回饋」。