Android 6.0 (Marshmallow) 將可視語音郵件 (VVM) 支援整合到撥號器中,允許相容的運營商 VVM 服務以最少的配置連接到撥號器。可視語音郵件讓使用者無需撥打任何電話即可輕鬆查看語音郵件。用戶可以在類似收件匣的介面中查看訊息列表,以任意順序收聽它們,並可以根據需要刪除它們。
Android 7.0為可視語音郵件新增了以下設定參數:
- 由
KEY_VVM_PREFETCH_BOOLEAN
控制的語音郵件預取 - 透過
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
控制是否需要蜂窩資料連接 - 取得語音郵件轉錄
- 取得語音信箱配額
本文概述了所提供的內容、營運商如何與其整合以及實施的一些細節。
可視語音郵件 (VVM) 用戶端
Android 6.0 及更高版本包含 OMTP VVM 用戶端,該用戶端(在提供正確的配置時)將連接到運營商 VVM 伺服器並在 Android 開源專案 (AOSP) 撥號器中填入可視語音郵件訊息。 VVM 客戶端:
- 處理用於啟用/停用/查詢服務狀態的 SMS 訊息以及用於通知裝置訂戶信箱中事件的 SMS 訊息
- 將郵件信箱與 IMAP 伺服器同步
- 當使用者選擇收聽語音郵件時下載語音郵件
- 取得語音郵件轉錄
- 取得語音郵件配額的詳細資訊(郵箱總大小和占用大小)
- 整合到撥號器中以實現回撥、查看未讀訊息、刪除訊息等用戶功能。
與 VVM 用戶端集成
執行
運營商必須提供實現OMTP VVM 規範的可視語音郵件伺服器。 AOSP VVM 用戶端的目前實作支援核心功能(讀取/刪除語音郵件、下載/同步/聆聽),但未實現附加 TUI 功能(密碼變更、語音郵件問候語、語言)。目前,我們僅支援 OMTP 1.1 版,並且不使用加密進行 IMAP 驗證。
為了支援轉錄,操作員必須支援 OMTP 1.3 規範第 2.1.3 項中指定的轉錄附件格式(MIME 類型純文字/文字)。
注意:伺服器傳送給裝置的 SMS 訊息(例如 STATUS 或 SYNC)必須是資料 SMS 訊息。
配置
為了使營運商與 VVM 服務集成,營運商必須向 OMTP 用戶端可以使用的平台提供設定詳細資訊。這些參數是:
- SMS 的目的地號碼和連接埠號
- 運營商提供的可視語音郵件應用程式的程式包名稱(如果提供),以便在安裝該程式包時可以停用平台實現
這些值是透過運營商配置 API提供的。此功能在 Android 6.0 中推出,允許應用程式動態地向需要它的各種平台組件提供與電話相關的配置。特別是以下鍵必須定義值:
-
KEY_VVM_DESTINATION_NUMBER_STRING
-
KEY_VVM_PORT_NUMBER_INT
-
KEY_VVM_TYPE_STRING
-
KEY_CARRIER_VVM_PACKAGE_NAME_STRING
-
KEY_VVM_PREFETCH_BOOLEAN
-
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
請參閱運營商配置文章以了解更多詳細資訊。
執行
OMTP VVM 客戶端在packages/services/Telephony
中實現,特別是在src/com/android/phone/vvm/
中
設定
- VVM 用戶端偵聽
TelephonyIntents#ACTION_SIM_STATE_CHANGED
或CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
。 - 當新增具有正確運營商配置值(
KEY_VVM_TYPE_STRING
設定為TelephonyManager.VVM_TYPE_OMTP
或TelephonyManager.VVM_TYPE_CVVM
)的 SIM 時,VVM 用戶端會傳送至KEY_VVM_DESTINATION_NUMBER_STRING
中指定的值傳送 客戶端。 - 伺服器啟動可視語音郵件服務並透過 STATUS 簡訊發送 OMTP 憑證。當 VVM 用戶端收到 STATUS 簡訊時,它會註冊語音郵件來源並在裝置上顯示語音郵件標籤。
- OMTP 憑證保存在本地,設備開始完全同步,如下所述。
正在同步
VVM 用戶端可以透過多種方式與營運商伺服器同步,反之亦然。
- 首次下載時會發生完全同步。 VVM 用戶端取得語音郵件元數據,例如日期和時間;原產地編號;期間;語音郵件轉錄(如果有);和音訊資料(如果
KEY_VVM_PREFETCH_BOOLEAN
為 True)。完全同步可以透過以下方式觸發:- 插入新 SIM 卡
- 重新啟動設備
- 返回服務
- 接收
VoicemailContract.ACTION_SYNC_VOICEMAIL
廣播
- 當使用者與語音郵件互動以閱讀或刪除它時,就會發生上傳同步。上傳同步會導致伺服器變更其資料以匹配裝置上的資料。例如,如果使用者閱讀語音郵件,則會在伺服器上將其標記為已讀;如果使用者刪除語音郵件,該郵件也會在伺服器上刪除。
- 當 VVM 用戶端收到來自運營商的「MBU」(郵箱更新)SYNC 簡訊時,就會發生下載同步。 SYNC 訊息包含新訊息的元數據,以便可以儲存在語音郵件內容提供者中。
注意:每次同步期間都會檢索語音郵件收件匣配額值。
語音信箱下載
當使用者按下播放來收聽語音郵件時,就會下載對應的音訊檔案。如果使用者選擇收聽語音郵件,撥號器可以廣播VoicemailContract.ACTION_FETCH_VOICEMAIL
,語音郵件用戶端將收到該訊息,啟動內容下載,並更新平台語音郵件內容提供者中的記錄。
禁用VVM
VVM 服務可以透過使用者互動、刪除有效 SIM 卡或電信商 VVM 應用程式更換來停用或停用。停用意味著本機裝置不再顯示可視語音郵件。停用表示該訂戶的服務已關閉。使用者互動可以停用該服務,SIM 刪除會暫時停用該服務,因為它不再存在,且電信商 VVM 更換會停用 AOSP VVM 用戶端。
使用者交互
使用者可以手動啟用或停用可視語音郵件。如果使用者停用可視語音郵件,他們也會停用其服務。當他們禁用可視語音郵件時,會發送 DEACTIVATE 短信,語音郵件源在本地取消註冊,並且語音郵件選項卡消失。如果他們重新啟用可視語音郵件,他們的服務也會重新啟動。
SIM 卡移除
如果設備的 SIM 狀態 ( ACTION_SIM_STATE_CHANGED
) 或運營商配置值 ( ACTION_CARRIER_CONFIG_CHANGED
) 發生更改,並且給定 SIM 的有效配置不再存在,則語音郵件源將在本地取消註冊,並且語音郵件選項卡會消失。如果更換 SIM 卡,VVM 將重新啟用。
被營運商 VVM 取代
如果設備上安裝了運營商可視語音郵件應用程序,則可以停用 AOSP VVM 用戶端。這是透過檢查是否安裝了名稱與KEY_CARRIER_VVM_PACKAGE_NAME_STRING
參數相符的軟體包來實現的。
VVM 用戶端仍然可以透過使用者互動啟用。
測試
VoicemailProvider API 有一組現有的(自 Android 4.0 起)CTS 測試,允許應用程式在平台中插入/查詢/刪除語音郵件。這些 API 與 VVM 用於新增/刪除語音郵件的 API 相同,以便任何撥號器應用程式都可以在 UI 中顯示它們。
若要測試您的配置應用程式是否正確通過 OMTP 配置,您可以使用以下命令測試您的程式碼:
- 包含有效憑證簽署的 SIM 卡
- 運行 Android 6.0 且具有未修改版本的 AOSP 手機框架的設備