Sur Android 12.0 (niveau d'API 31) ou version ultérieure, le système fournit le
CallStyle
modèle de notification pour distinguer les notifications d'appel des
d'autres types de notifications. Utilisez ce modèle pour créer
notifications d'appel en cours. Le modèle est compatible avec les notifications en grand format
qui incluent des informations sur l'appelant et les actions requises, comme répondre à un appel ou
la baisse des appels.
Les appels entrants et en cours étant des événements à priorité élevée, ces notifications sont prioritaires dans le volet des notifications. Ce classement permet également pour transférer ces appels prioritaires vers d'autres appareils.
Le modèle de notification CallStyle
inclut les actions obligatoires suivantes:
- Décrocher ou Refuser pour les appels entrants
- Raccrocher pour les appels en cours
- Répondre ou Raccrocher pour filtrer les appels
Les actions de ce style apparaissent sous forme de boutons, et le système ajoute automatiquement des icônes et du texte appropriés. L'étiquetage manuel des boutons n'est pas accepté. Pour en savoir plus sur les principes de conception des notifications, consultez Notifications :
Les actions requises sont transmises en tant qu'intents, comme hangupIntent
et
answerIntent
dans les sections suivantes. Chacun de ces éléments fait référence à
géré par le système. Le jeton est un objet léger
peuvent être transmises
entre différentes applications et processus. Le système est
responsable de la gestion de la durée de vie du jeton et de s'assurer que le
PendingIntent
est utilisable même si l'appli qui l'a créé n'est plus
en cours d'exécution. Lorsque vous attribuez un PendingIntent
à une autre application, vous lui accordez
l'autorisation d'effectuer l'opération spécifiée, comme refuser ou répondre.
Cette autorisation est accordée même si l'application qui a créé l'intent
n'est pas en cours d'exécution. Pour en savoir plus, consultez la documentation de référence
pour PendingIntent
.
À partir d'Android 14 (niveau d'API 34), vous pouvez configurer les notifications d'appel.
ne peuvent pas être ignorées. Pour ce faire, utilisez les notifications CallStyle
avec le paramètre
De Notification.FLAG_ONGOING_EVENT
à
Notification.Builder#setOngoing(true)
Vous trouverez ci-dessous des exemples d'utilisation de différentes méthodes avec 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();
Appel entrant
Utilisez la méthode forIncomingCall()
pour créer une notification de style d'appel pour une
appel entrant.
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);
Appel en cours
Utilisez la méthode forOngoingCall()
pour créer une notification de style d'appel pour une
appel en cours.
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);
Filtrer un appel
Utilisez la méthode forScreeningCall()
afin de créer une notification de style d'appel pour
filtrer un appel.
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);
Assurer la compatibilité avec un plus grand nombre de versions d'Android
Associer les notifications CallStyle
sur les versions 30 ou antérieures de l'API à un
un service de premier plan afin de lui attribuer le classement le plus élevé qui lui est attribué dans l'API
niveau 31 ou ultérieur. En outre, CallStyle
notifications sur la version 30 de l'API
peuvent obtenir un classement similaire en la marquant comme
à l'aide de la méthode setColorized()
.
Utilisez les API Telecom avec les notifications CallStyle
. Pour en savoir plus, consultez
Présentation du framework de télécommunications