Android 7.0 將與通話通知相關的功能從 Android 平台中的 Telecom 系統服務移至撥號應用程式。先前,顯示通話相關通知的責任由 Telecom 和預設撥號應用程式分擔,導致行為不一致。在 Android 7.0 中,撥號程式會負責處理所有通話通知。
Android 6.x 以下版本的行為
在舊版 Android 中,Telecom 和撥號程式會分擔責任,如下表所示:
| 功能 | 由電信公司完成 | 由撥號器完成 |
|---|---|---|
| 來電通知 | 是 (響鈴、震動) | 是 (顯示通知和來電顯示) |
| 轉入語音信箱 | 是 | 否 |
| 自訂鈴聲 | 是 | 否 |
| 未接來電通知 | 是 | 否 |
| 待處理訊息指標 (撥打語音留言服務) | 是 (電話) | 否 |
| 視覺化語音信箱通知 | 否 | 是 |
以下列舉幾項因責任劃分而導致不一致的行為:
- 電信負責啟動鈴聲/震動器,但撥號器負責顯示來電通知。如果撥號程式啟動速度緩慢,可能會導致鈴聲在來電通知顯示前幾秒就開始響起。
- 電信公司負責顯示未接來電通知。由於專屬功能 (例如 Google 來電顯示) 無法在這些通知上運作,電信通知和撥號程式使用者介面 (例如通話記錄) 可能會出現不一致的情況。
Android 7.0 以上版本的行為
Android 開放原始碼計畫 (AOSP) 撥號程式會實作這項新功能。詳情請參閱以下說明文件:
- 未接來電通知
Telecom/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
Dialer/android/dialer/calllog/MissedCallNotificationReceiver.java
Dialer/android/dialer/calllog/MissedCallNotifier.java - 播放鈴聲:
frameworks/base/telecomm/java/android/telecom/InCallService.java
Telecom/src/com/android/server/telecom/InCallController.java
Dialer/java/com/android/incallui/ringtone/
Dialer/java/com/android/incallui/StatusBarNotifier.java - 語音信箱通知
frameworks/base/telephony/java/android/telephony/TelephonyManager.java
Telephony/src/com/android/phone/PhoneInterfaceManager.java
Dialer/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
Android 12 以上版本的通話通知樣式
對於搭載 Android 12 以上版本的裝置,為提供一致的通話使用者體驗,建議應用程式對來電和通話中的通知使用
CallStyle 通知樣式。詳情請參閱「
新的來電通知可讓您依重要性排序來電」。
實作
裝置實作人員可能需要更新 Telecom/Telephony 元件,這些元件會公開預設撥號程式可用的 API。