在 Android 12.0 (API 級別 31) 以上版本中,系統會提供
CallStyle
通知範本,用於區分來電通知和
其他類型的通知。請使用這個範本建立
進行中通話的通知。範本支援大格式通知
包含來電者資訊和必要操作,例如接聽或
拒絕通話
來電和進行中的通話都是高優先順序事件,因此這些通知 會在通知欄中優先顯示使用者需求這個排名也讓 系統,將這些優先來電轉接至其他裝置。
CallStyle
通知範本包含下列必要動作:
- 接聽來電時選擇「接聽」或「拒接」。
- 掛斷目前的通話。
- 接聽或掛斷來電過濾。
這個樣式中的動作會顯示為按鈕,並自動在 適當圖示和文字不支援手動為按鈕加上標籤。 如要進一步瞭解通知設計原則,請參閱 通知:
![通話樣式通知 (有標籤的按鈕)](https://developer.android.com/static/images/ui/notifications/CallStyle.png?hl=zh-tw)
必要動作會以意圖的形式傳遞,例如 hangupIntent
和
answerIntent
。每個都代表
憑證權杖權杖是一種輕量物件
且可在不同的應用程式和程序之間傳遞系統是
負責管理權杖的生命週期
即使建立 PendingIntent
的應用程式已無法使用,還是可以使用
備用資源將 PendingIntent
提供給其他應用程式,即代表您
但具備執行指定作業的權限,例如拒絕或回答。
即使建立意圖的應用程式也一樣
目前並未執行。詳情請參閱參考說明文件
之 PendingIntent
。
從 Android 14 (API 級別 34) 開始,您可以設定來電通知
這是不可關閉的方法是透過以下方式使用 CallStyle
通知:
Notification.FLAG_ONGOING_EVENT
到
Notification.Builder#setOngoing(true)
。
以下範例說明如何搭配 CallStyle
使用各種方法
通知。
Kotlin
// Create a new call, setting the user as the caller. val incomingCaller = Person.Builder() .setName("Jane Doe") .setImportant(true) .build()
Java
// Create a new call with the user as the caller. Person incomingCaller = new Person.Builder() .setName("Jane Doe") .setImportant(true) .build();
來電
請使用 forIncomingCall()
方法為
。
Kotlin
// Create a call style notification for an incoming call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incomingCaller)
Java
// Create a call style notification for an incoming call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incomingCaller);
通話中
請使用 forOngoingCall()
方法為
進行中的通話。
Kotlin
// Create a call style notification for an ongoing call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOngoingCall(caller, hangupIntent)) .addPerson(second_caller)
Java
// Create a call style notification for an ongoing call. Notification.Builder builder = new Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOngoingCall(caller, hangupIntent)) .addPerson(second_caller);
過濾來電
請使用 forScreeningCall()
方法為以下項目建立呼叫樣式通知:
過濾來電
Kotlin
// Create a call style notification for screening a call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller)
Java
// Create a call style notification for screening a call. Notification.Builder builder = new Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller);
為更多 Android 版本提供相容性
將 API 30 以下版本的 CallStyle
通知與
前景服務,以便為他們指派 API 中最高排名
第 31 級以上。此外,API 版本 30 的 CallStyle
通知
或以上版本可同時將通知標示為
透過 setColorized()
方法進行色彩。
搭配 CallStyle
通知使用 Telecom API。若需更多資訊,請參閲
電信架構總覽。