企業行動管理服務 (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 管理員的 所設設定的狀態以下工作流程範例說明 透過其中一種方法達成上述目標
- IT 管理員可使用 EMM 控制台調整及傳送受管理的設定
安裝在全代管裝置上的應用程式
或在工作資料夾內存取。
例如:
- 音量:50%
- 貨幣:「USDD」
- 應用程式嘗試套用設定。已成功設定音量 變更為 50%,但貨幣代碼無效,因此無法使用。
- 應用程式會根據各項設定的狀態,設定具有金鑰的應用程式狀態。
每個含有金鑰的應用程式狀態都含有專屬金鑰,以及一則附有詳細資料
時間。建議您盡可能比對受管理的設定鍵。
例如:
鍵 訊息 嚴重程度 時間戳記 volume
設為 50% SEVERITY_INFO
1554461130
currency
貨幣「USDD」無法辨識 SEVERITY_ERROR
1554461130
- 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_LENGTH
、MAX_MESSAGE_LENGTH
, 和MAX_DATA_LENGTH
。 - 單次
setStates
或setStatesImmediate
呼叫總計上限為 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
Collectionstates = 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);