Notes de mise à jour
Product deprecation notice
Effective April 30th, 2026, Vonage In-App Messaging will no longer be available. Access for new users will be closed, and the service will be discontinued for all existing users.
If you have any questions regarding this product’s discontinuation, please contact your account manager or our support team.
4.1.3 - 15 septembre 2022
Fixe
- Fixer
NexmoMessageTraitement de la file d'attente pour les demandes reçues et livrées
4.1.2 - 10 août 2022
Fixe
- Utiliser le niveau de journalisation de la configuration client pour la journalisation http
4.1.1 - 25 mai 2022
Fixe
- Fixer
NexmoMessagesérialisation - Correction de la gestion des erreurs dans
NexmoClient.getConversation()lorsqu'il n'est pas membre.
4.1.0 - 11 mai 2022
Ajouté
- Soutien aux
call:transferà l'intérieurNexmoCall - Ajouté
NexmoLegTransferEventcontenant les détails de la conversation précédente et actuelle lorsqu'un appel est transféré - Ajouté
CallEventListenerrecevoirNexmoLegTransferEventavec de nouveaux membres lorsqu'un appel est transféré vers une nouvelle conversation.
NexmoCallEventListener callEventListener = new NexmoCallEventListener() {
@Override
public void onLegTransfer(NexmoLegTransferEvent event, NexmoMember member) {
Log.d(TAG, "Call Transferred");
}
};
- Exposer
pushNotificationTTLauNexmoClient.Builder()pour régler le dispositif enregistré Pousser TTL - Nouveaux événements publics
NexmoSubmittedEvent,NexmoRejectedEventetNexmoUndeliverableEventpour les états des messages. - De nouveaux récepteurs d'état de message ont été ajoutés à
NexmoMessageEventListenerl'interface.
NexmoCallEventListener messageEventListener = new NexmoMessageEventListener() {
@Override
public void onSubmittedReceipt(@NonNull NexmoSubmittedEvent event) {
Log.d("onSubmittedReceipt", "Got [" + event + "] from:" + event.getFromMember());
}
@Override
public void onRejectedReceipt(@NonNull NexmoRejectedEvent event) {
Log.d("onSubmittedReceipt", "Got [" + event + "] from:" + event.getFromMember());
}
@Override
public void onUndeliverableReceipt(@NonNull NexmoUndeliverableEvent event) {
Log.d("onSubmittedReceipt", "Got [" + event + "] from:" + event.getFromMember());
}
};
4.0.4 - 14 avril 2022
Fixe
- Modification de l'horodatage par défaut du fuseau horaire local en UTC
4.0.3 - 4 avril 2022
Fixe
- Ajout d'une vérification pour s'assurer que l'utilisateur est connecté lors de la configuration de l'appel sortant préchauffé.
- Modification de l'horodatage par défaut en UTC sans fuseau horaire.
4.0.2 - 9 mars 2022
Améliorations
- Dépendance WebRTC mise à jour vers la version
84.0.22.
4.0.1 - 21 janvier 2022
Fixe
- Ajout d'une vérification pour s'assurer que l'utilisateur est connecté avant que le SDK n'essaie de traiter l'événement "push".
4.0.0 - 7 décembre 2021
Ajouté
NexmoConversation.sendMessage(message, listener)à envoyerNexmoMessageà une conversation.NexmoClient.uploadAttachment(attachment, listener)pour envoyer desNexmoAttachmentType.NexmoMessagereprésente un message deEMessageEventTypeà envoyer.EMessageEventTypepour les messages de typetext,image,audio,video,file,template,vcard,custometlocation.NexmoChannelTypea ajouté des canaux de typesms,mms,whatsapp,viberetmessenger.NexmoAttachmentTypepour télécharger un message en pièce jointe dans Vonage Media Service.NexmoMessageEventreprésente l'événement relatif à l'état du message du membre envoyé dans le systèmeNexmoMemberMessageStatusEventListener.
Améliorations
- Dépendance WebRTC mise à jour vers la version
84.0.0.
Déclassé
NexmoConversation.sendText(text, listener)méthode. UtiliserNexmoConversation.sendMessage(message, listener)à la place.NexmoConversation.sendAttachment(file, listener)méthode. UtiliserNexmoClient.uploadAttachment(attachment, listener)etNexmoConversation.sendMessage(message, listener)à la place.
3.3.0 - 22 novembre 2022
Ajouté
NexmoClient.Builder'srestEnvironmentHostPinningetenvironmentHostPinningont été ajoutées pour permettre l'épinglage HTTP et SSL des sockets web.NexmoPinningConfig.fromPublicKeys(...)pour créer une configuration d'épinglage basée sur une clé publique.
nexmoClient = new NexmoClient.Builder()
.environmentHostPinning(NexmoPinningConfig.fromPublicKeys("publicKeyHash"))
.build(context);
- Nouveau
ConnectionStatusReasoncasSSL_PINNING_ERRORquandDisconnecteden raison d'une clé publique invalide trouvée lors de la connexion au backend.
connectionStateListener = NexmoConnectionListener { status, reason ->
when(status){
NexmoConnectionListener.ConnectionStatus.DISCONNECTED-> {
if (reason == NexmoConnectionListener.ConnectionStatusReason.SSL_PINNING_ERROR) {
// Notify UI
}
}
}
}
3.2.0 - 19 octobre 2021
Ajouté
NexmoClient.Builder.autoMediaReoffer(autoMediaReoffer)pour permettre de reconnecter automatiquement les médias lorsque les interfaces réseau changent.EMediaConnectionStateénumérer.NexmoMediaStatusListenerpour recevoir une notification de changement d'état de la connexion média.NexmoConversation.reconnectMedia()pour déclencher une reconnexion des médias.NexmoClient.reconnectCall(conversationId, legId, listener)pour reconnecter un appel à partir d'un identifiant de conversation et d'un identifiant de segment.NexmoClient.getUserSessions(userId, pageSize, order, listener)pour obtenir une liste paginée des sessions d'utilisateurs actives.
Version 3.1.1 - 18 octobre 2021
Ajouté
- Changer la prise
connectionListenersdeHashSetàArraySet.
Version 3.1.0 - 6 septembre 2021
Ajouté
NexmoClient.inAppCall(username, listener)pour effectuer des appels in-app.NexmoClient.serverCall(callee, customData, listener)pour effectuer les appels au serveur, en spécifiant éventuellementcustomData.
Déclassé
NexmoClient.call(callee, callType, listener)méthode.NexmoCallHandlerénumérer.
Version 3.0.1 - 16 juin 2021
Améliorations
- Correction d'un bogue dans l'envoi DTMF d'un rappel à la fonction
event_url - Correction d'un bug qui empêchait de recevoir les événements de frappe du Web vers Android
Version 3.0.0 - 1er juin 2021
Ajouté
- Ajouté
NexmoMemberSummaryrenvoyée parconversation.getMembers(pageSize, order, listener)(paginé), représentant un sous-ensemble d'informations sur les membres. - Ajouté
memberEvent.getInvitedBy()qui représente le nom de l'invitant, s'il existe. - Ajouté
NexmoEventEmbeddedInfoà tous les événements renvoyés parevent.getEmbeddedInfo()et contenant leNexmoUserliés à l'événement. - Ajouté
conversation.getMember(memberId, listener)qui renvoie le membre en fonction de son identifiant.
Améliorations
- Améliorer la documentation javadoc.
- Améliorer
callServertemps de préparation en préchauffant la jambe. - Désactiver le média après l'événement de raccrochage RTC.
Changements en cours
- Supprimé
NexmoCallMemberremplacée parNexmoMember. - Supprimé
callMember.getCallStatus(), déplacé àcall.getMemberCallStatus(member). - Supprimé
callMember.mute(boolean, listener)s'est déplacé àmember.enableMute(listener)etmember.disableMute(listener). - Supprimé
callMember.earmuff(boolean, listener)s'est déplacé àmember.enableEarmuff(listener)etmember.enableEarmuff(listener). - Supprimé
conversation.getAllMembers()s'est déplacé àconversation.getMembers()(paginé). - Supprimé
NexmoConversationListener.onMemberUpdatedremplacée parNexmoMemberEventListenerqui fournissentonMemberInvited,onMemberAdded,onMemberRemovedsouscrire parconversation.addMemberEventListener(). - Renommé
call.getCallMembers()àcall.getAllMembers(). - Renommé
call.getMyCallMember()àcall.getMyMember(). - Les
legsdoit être incluse dans leaclchemins surJWTla création de jetons.
"acl": {
"paths": {
...,
"/*/legs/**": {}
}
}
Version 2.8.1 - 14 décembre 2020
Améliorations
- Correction de l'incohérence des valeurs des attributs
displayNameetimageUrlpourNexmoUserobjet. - Amélioration de la stabilité des appels sortants et des conversations.
Version 2.8.0 - 19 novembre 2020
Modifié
- Renommé
NexmoCallMemberStatus.CANCELEDàNexmoCallMemberStatus.CANCELLED.
Améliorations
- Notifié avec
NexmoCallMemberStatus.CANCELLEDsur l'auditeuronMemberStatusUpdated(NexmoCallMemberStatus memberStatus, NexmoCallMember callMember)pour raccrocher l'appel.
Version 2.7.1 - 27 octobre 2020
Améliorations
- Amélioration de la stabilité des appels sortants.
Version 2.7.0 - 24 septembre 2020
Ajouté
- Exposer la raison
NETWORK_ERRORsur l'état de la connexionDISCONNECTEDpour l'auditeuronConnectionStatusChange(ConnectionStatus status, ConnectionStatusReason reason).
Version 2.6.5 - 24 août 2020
Améliorations
- Amélioration de la mise en œuvre des journaux SDK et de la stabilité des connexions de socket.
Version 2.6.4 - 19 mai 2020
Nouveau
- Nous avons scindé nos artefacts à partir de cette version, donc un dépôt maven personnalisé doit être ajouté au projet :
//Groovy - build.gradle
allprojects {
repositories {
…
maven {
url "https://artifactory.ess-dev.com/artifactory/gradle-dev-local"
}
}
}
// Kotlin Gradle script - build.gradle.kts
allprojects {
repositories {
…
maven("https://artifactory.ess-dev.com/artifactory/gradle-dev-local")
}
}
Améliorations
- Amélioration du rapport sur la version du SDK de l'agent utilisateur.
Version 2.6.3 - 4 mai 2020
Fixe
- Modification de la visibilité des
Nexmo.page.isPrevPageExist()àpublic.
Version 2.6.2 - 29 avril 2020
Fixe
- Potentiel
NullPointerExceptionlors du traitement des notifications push pendant la connexion du client.
Version 2.6.1 - 22 avril 2020
Ajouté
- Exposer l'interface
NexmoDTMFEventListenerpour s'abonner aux événements DTMF surNexmoConversation.
Version 2.6.0 - 20 avril 2020
Ajouté
- Afficher l'état de la connexion
isConnectedenNexmoClient.
NexmoClient.get().isConnected()
Fixe
- Évitez d'invoquer
loginplusieurs fois lorsque l'utilisateur est déjà connecté.
Version 2.5.1 - 20 avril 2020
Améliorations
- Amélioration de la mise en œuvre de la collecte des candidats à la CIE unique.
Version 2.5.0 - 25 mars 2020
Ajouté
- Ajouter
useFirstIceCandidateparamètres àNexmoClient.Builder
nexmoClient = new NexmoClient.Builder().useFirstIceCandidate(true/false).build(context);
Version 2.4.0 - 3 mars 2020
Ajouté
- Ajouter un filtre par état à
getConversationsPageenNexmoClient.
NexmoClient.get().getConversationsPage(50, NexmoPageOrderDesc, "JOINED", new NexmoRequestListener<NexmoConversationsPage>(){
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoConversationsPage result){
//Get the current page conversations -Sync
Collection<NexmoConversation> conversations = result.getData()
//Get the next page -Async
result.getNext(new NexmoRequestListener<NexmoConversationsPage>(){
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoConversationsPage result){
}
})
//Get the previous page -Async
result.getPrev(new NexmoRequestListener<NexmoConversationsPage>(){
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoConversationsPage result){
}
})
}
});
Version 2.3.0 - 11 février 2020
Ajouté
- Ajouter
updateAsDeliveredetUpdateAsSeenàNexmoAttachmentEventetNexmoTextEventcomme méthode d'aide pour mettre à jour l'événement localement aprèsmarkAsSeenoumarkAsDelivereda été couronnée de succès.
NexmoTextEvent.markAsDelivered(object: NexmoRequestListener<Any>{
override fun onSuccess(result: Any?) {
Log.d(TAG, TAG + "onTextEvent.markAsDelivered():onSuccess with: " + result.toString())
NexmoTextEvent.updateAsDelivered(my_member_id, Date.now())
}
})
Fixe
- Fixer
markAsSeenetmarkAsDeliveredpourNexmoTextEventetNexmoAttachmentEvent
Modifié
- Mise à jour des bibliothèques de dépendances à ajouter à votre build Gradle
android {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Version 2.2.0 - 31 janvier 2020
Ajouté
- Ajout de la prise en charge des notifications push personnalisées, à l'aide de
processNexmoPush(),processPushNotification()est obsolète
if (NexmoClient.isNexmoPushNotification(message!!.data)) {
val pushListener = object : NexmoPushEventListener {
override fun onIncomingCall(nexmoCall: NexmoCall?) {
Log.d(TestAppMessagingService.TAG, "$TAG:TestAppMessagingService:onIncomingCall() with: $nexmoCall")
}
override fun onError(nexmoError: NexmoApiError?) {
Log.d(TestAppMessagingService.TAG, "$TAG:TestAppMessagingService:onError() with: $nexmoError")
}
override fun onNewEvent(event: NexmoEvent?) {
Log.d(TestAppMessagingService.TAG, "$TAG:TestAppMessagingService:onNewEvent() with: $event")
}
}
NexmoPushPayload nexmoPushPayload = nexmoClient.processNexmoPush(message!!.data, pushListener)
when(nexmoPushPayload.pushTemplate){
Default ->
// you can use nexmoPushPayload.eventData if needed
Custom ->
// got nexmo custom push. 😀
// you should parse nexmoPushEvent.customData your backend had defined.
}
}
- Ajouter
markAsDelivered()à la méthodeNexmoTextEventetNexmoAttachmentEvent
NexmoTextEvent.markAsDelivered(object: NexmoRequestListener<Any>{
override fun onSuccess(result: Any?) {
Log.d(TAG, TAG + "onTextEvent.markAsDelivered():onSuccess with: " + result.toString())
}
override fun onError(error: NexmoApiError) {
Log.d(TAG, TAG + "onTextEvent.markAsDelivered():onError with: " + error)
}
})
- Ajouter
markAsSeen()à la méthodeNexmoTextEventetNexmoAttachmentEvent
NexmoAttachmentEvent.markAsSeen(object: NexmoRequestListener<Any>{
override fun onSuccess(result: Any?) {
Log.d(TAG, TAG + "onAttachmentEvent.markAsSeen():onSuccess with: " + result.toString())
}
override fun onError(error: NexmoApiError) {
Log.d(TAG, TAG + "onAttachmentEvent.markAsSeen():onError with: " + error)
}
})
Version 2.1.2 - 12 janvier 2020
Ajouté
- Ajouter l'annotation de
PermissionRequiredpour les fonctions qui démarrent les médias :NexmoClient.call,NexmoCall.answer,NexmoConvesation.enableMedia
class MyAcitivity MakeCallActivity extends Activity {
@Override public void onCreate(Bundle savedInstanceState){
//Call requires permission which may be rejected by user:
//code should explicitly check to see if permission is available (with 'checkPermission')
//or explicitly handle a potential 'SecurityException'
NexmoClient.get().call("1234567890", NexmoCallHandler.SERVER, new NexmoRequestListener<NexmoCall>(){
@Override
void onError(NexmoApiError error) {
Log.d("NexmoCallListener", "onError call:" + error.toString())
}
@Override
void onSuccess(NexmoCall call) {
Log.d("NexmoCallListener", "onSuccess call:" + cal.toString())
}
});
}
}
Supprimé
- Supprimer l'obligation d'autorisation
PROCESS_OUTGOING_CALLS - Supprimer l'obligation d'autorisation
READ_PHONE_STATE
Version 2.1.0 - 01 janvier 2020
Ajouté
- Ajouter
clearNexmoEventsListenersméthode enNexmoConversationpour effacer tous les auditeurs
class MyActivity extends Activity{
NexmoConversation myConversation;
@Override public void onStart(){
//Add listener to events
myConversation.addMemberEventListener(new NexmoMemberEventListener(){
//implement functions
}
});
myConversation.addCustomEventListener(new NexmoCustomEventListener(){
//implement functions
});
//Add more listeners
}
@Override public void onStop(){
//Clear all listeners
myConversation.clearNexmoEventsListeners();
}
}
- Ajouter
clearMemberEventListenersméthode enNexmoConversationpour effacer tous lesNexmoMemberEventListenerauditeurs
class MyActivity extends Activity{
NexmoConversation myConversation;
@Override public void onStart(){
//Add listener to NexmoMemberEvent
myConversation.addMemberEventListener(new NexmoMemberEventListener(){
});
}
@Override public void onStop(){
myConversation.clearMemberEventListeners();
}
}
- Ajouter
clearCustomEventListenersméthode enNexmoConversationpour effacer tous lesNexmoCustomEventListenerauditeurs
class MyActivity extends Activity{
NexmoConversation myConversation;
@Override public void onStart(){
//Add listener to NexmoCustomEvent
myConversation.addCustomEventListener(new NexmoCustomEventListener(){
});
}
@Override public void onStop(){
myConversation.clearCustomEventListeners();
}
}
- Ajouter
clearLegStatusEventListenersméthode enNexmoConversationpour effacer tous lesNexmoLegStatusEventListenerauditeurs
class MyActivity extends Activity{
NexmoConversation myConversation;
@Override public void onStart(){
//Add listener to NexmoLegStatusEvent
myConversation.addLegStatusEventListener(new NexmoLegStatusEventListener(){
});
}
@Override public void onStop(){
myConversation.clearLegStatusEventListeners();
}
}
- Ajouter
clearDTMFEventListenersméthode enNexmoConversationpour effacer tous lesNexmoDTMFEventListenerauditeurs
class MyActivity extends Activity{
NexmoConversation myConversation;
@Override public void onStart(){
//Add listener to NexmoDTMFEvent
myConversation.addDTMFEventListener(new NexmoDTMFEventListener(){
});
}
@Override public void onStop(){
myConversation.clearDTMFEventListeners();
}
}
- Ajouter
clearMessageEventListenersméthode enNexmoConversationpour effacer tous lesNexmoMessageEventListenerauditeurs
class MyActivity extends Activity{
NexmoConversation myConversation;
@Override public void onStart(){
//Add listener to NexmoMessageEvent
myConversation.addMessageEventListener(new NexmoMessageEventListener(){
});
}
@Override public void onStop(){
myConversation.clearMessageEventListeners();
}
}
- Ajouter
clearNexmoConversationListenersméthode enNexmoConversationpour effacer tous lesNexmoConversationListenerauditeurs
class MyActivity extends Activity{
NexmoConversation myConversation;
@Override public void onStart(){
//Add listener to NexmoConversation
myConversation.addNexmoConversationListener(new NexmoConversationListener(){
});
}
@Override public void onStop(){
myConversation.clearNexmoConversationListeners();
}
}
- Ajouter
clearTypingEventListenersméthode enNexmoConversationpour effacer tous lesNexmoTypingEventListenerauditeurs
class MyActivity extends Activity{
NexmoConversation myConversation;
@Override public void onStart(){
//Add listener to NexmoTypingEvent
myConversation.addTypingEventListener(new NexmoTypingEventListener(){
});
}
@Override public void onStop(){
myConversation.clearTypingEventListeners();
}
}
- Ajouter
NexmoMemberau paramètreNexmoMemberEventen ce qui concerne lesNexmoMemberagi par :
NexmoConversation myConversation;
myConversation.addMemberEventListener(new NexmoMemberEventListener{
void onMemberInvited(@NonNull final NexmoMemberEvent event){
//The invitee member
event.getMember()
//the inviter member
event.getFromMember()
}
});
Fixe
- envoi
NexmoAttachmentEventen ce qui concerneNexmoConversation
NexmoConversation myConversation;
myConversation.addNexmoMessageEventListener(new NexmoMessageEventListener(){
void onAttachmentEvent(@NonNull final NexmoAttachmentEvent attachmentEvent){
//handle attachment event
}
});
- envoi
NexmoMediaEventen ce qui concerneNexmoConveration - envoi
NexmoMediaActionEventen ce qui concerneNexmoConveration - faire
NexmoDTMFEventl'héritageNexmoEvent NexmoTextEvent.equalsà utilisersuper.equalsNexmoConversation.getCreationDatepour revenirDateobjet javaNexmoEvent.getCreationDatefixerIllegalArgumentException
2.0.0 - 2019-12-22
Ajouté
- Ajouter un filtre par
EventTypeenNexmoConversation.getEvents
NexmoConversation myConversation
//Get all text event for a specifc conversation
myConversation.getEvents(10, NexmoPageOrderDesc, "text", new NexmoRequestListener<NexmoEventsPage> {
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoEventsPage result){
Collection<NexmoEvent> textEvents = result.getData()
}
});
//Get all member event for a specifc conversation
myConversation.getEvents(10, NexmoPageOrderDesc, "member:*", new NexmoRequestListener<NexmoEventsPage> {
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoEventsPage result){
Collection<NexmoEvent> memberEvents = result.getData()
}
});
Modifié
NexmoDeliveredEventsupprimerInitialEventet ajouterInitialEventIdNexmoSeenEventsupprimerInitialEventet ajouterInitialEventId
Fixe
- Prise en charge de DTLS dans WebRTC
NexmoConversationsPage.getPrev()renvoie les conversations du curseur de droite
2.0.0 - 2019-12-22
Ajouté
- Ajouter un filtre par
EventTypeenNexmoConversation.getEvents
NexmoConversation myConversation
//Get all text event for a specifc conversation
myConversation.getEvents(10, NexmoPageOrderDesc, "text", new NexmoRequestListener<NexmoEventsPage> {
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoEventsPage result){
Collection<NexmoEvent> textEvents = result.getData()
}
});
//Get all member event for a specifc conversation
myConversation.getEvents(10, NexmoPageOrderDesc, "member:*", new NexmoRequestListener<NexmoEventsPage> {
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoEventsPage result){
Collection<NexmoEvent> memberEvents = result.getData()
}
});
Modifié
NexmoDeliveredEventsupprimerInitialEventet ajouterInitialEventIdNexmoSeenEventsupprimerInitialEventet ajouterInitialEventId
Fixe
- Prise en charge de DTLS dans WebRTC
NexmoConversationsPage.getPrev()renvoie les conversations du curseur de droite
1.2.0 - 2019-12-16
Ajouté
- Ajouter un filtre par
EventTypeenNexmoConversation.getEvents
NexmoConversation myConversation
//Get all text event for a specifc conversation
myConversation.getEvents(10, NexmoPageOrderDesc, "text", new NexmoRequestListener<NexmoEventsPage> {
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoEventsPage result){
Collection<NexmoEvent> textEvents = result.getData()
}
});
//Get all member event for a specifc conversation
myConversation.getEvents(10, NexmoPageOrderDesc, "member:*", new NexmoRequestListener<NexmoEventsPage> {
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoEventsPage result){
Collection<NexmoEvent> memberEvents = result.getData()
}
});
Fixe
- Prise en charge de DTLS dans WebRTC
Version 1.1.0 - 2019-12-04
Changements
- Ajouter
iceServerUrlsparamètres àNexmoClient.Builder
nexmoClient = new NexmoClient.Builder().iceServerUrls(new String[]{"stun/turn servr url"}).build(context);
Fixe
- Correction du problème de l'appel entrant de la notification push
Version 1.0.3 - 2019-11-20
###Changes
- modifier la signature de
NexmoClient.login(), supprimerNexmoRequestListener<NexmoUser>paramètre :
nexmoClient = new NexmoClient.Builder().build(context);
nexmoClient.setConnectionListener(new NexmoConnectionListener() {
@Override
public void onConnectionStatusChange(ConnectionStatus connectionStatus, ConnectionStatusReason connectionStatusReason) {
switch (connectionStatus){
case CONNECTED:
//the client is connected to the server - the login successed
case DISCONNECTED:
case CONNECTING:
case UNKNOWN:
//the client is not connected to the server - the login failed/not yet successed
}
});
NexmoClient.login("MY_AUTH_TOKEN")
- modifier la signature de
NexmoPushEventListener.onIncomingCall(), supprimerMemberEventparamètre :
override public void onMessageReceived(@Nullable RemoteMessage message) {
if (NexmoClient.isNexmoPushNotification(message.getData())) {
handleNexmoPushForLoggedInUser(message)
}
}
nexmoClient.processPushNotification(message.getData(), new NexmoPushEventListener(){
public void onIncomingCall(NexmoCall nexmoCall){
}
public void onNewEvent(NexmoEvent event){
}
public void onError(NexmoApiError error){
}
})
Fixe
- fixer
NexmoConversation.sendAttachmentinsecte - fixer
NexmoAttachmentEventreçu du backend - Correction d'un bogue de condition de course provoquant l'abandon d'appels
- Correction d'un bug dans la notification push
Version 1.0.2 - 2019-11-11
Changements
- Renommer
GetConversationsPageàGetConversations - Renommer
GetEventsPageàGetEvents NexmoClient.GetConversationspar défautpageSizeest de 10NexmoConversation.GetEventspar défautpageSizeest de 10
Version 1.0.1
Nouveau
- Ajouter
getConversationsPageenNexmoClient
NexmoClient.get().getConversationsPage(50, NexmoPageOrderDesc, new NexmoRequestListener<NexmoConversationsPage>(){
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoConversationsPage result){
//Get the current page conversations -Sync
Collection<NexmoConversation> conversations = result.getData()
//Get the next page -Async
result.getNext(new NexmoRequestListener<NexmoConversationsPage>(){
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoConversationsPage result){
}
})
//Get the previous page -Async
result.getPrev(new NexmoRequestListener<NexmoConversationsPage>(){
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoConversationsPage result){
}
})
}
});
- Ajouter
getEventsPageenNexmoConversation
NexmoConversation myConversation;
...
myConversation.getEventsPage(50, NexmoPageOrderDesc, new NexmoRequestListener<NexmoEventsPage>(){
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoEventsPage result){
//Current event page data -Sync
Collection<NexmoEvent> events = result.getData();
//Get the next page -Async
result.getNext( new NexmoRequestListener<NexmoEventsPage>(){
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoEventsPage result){
}
}
);
//Get the previous page -Async
result.getPrev( new NexmoRequestListener<NexmoEventsPage>(){
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoEventsPage result){
}
}
);
}
);
Supprimé
- supprimer
conversation.getEvents()
Fixe
NexmoConversationParcelablefixe
Version 1.0.0 - 2019-09-05
Modifié
NexmoClientest un singleton et n'obtient que le contexte comme paramètre obligatoire. Pour initialiserNexmoClient:
NexmoClient nexmoClientInstance = NexmoClientBuilder.Builder().build(context);
- Pour définir
NexmoConnectionListener:
NexmoConnectionListener myConnectionListener = new NexmoConnectionListener{
void onConnectionStatusChange(ConnectionStatus status, ConnectionStatusReason reason){
Log.i("onConnectionStatusChange","status:" + status + " reason:" + reason);
}
}
nexmoClientInstance.setConnectionListener(myConnectionListener);
NexmoClientLa fonction d'appel reçoit un seul nom d'utilisateur ou un seul numéro de téléphone :
//IN APP CALL:
NexmoClient.get().call(callee, NexmoCallHandler.IN_APP, new NexmoRequestListener<NexmoCall>() {
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoCall result){
}
});
//SERVER CALL:
NexmoClient.call(callee, NexmoCallHandler.SERVER, new NexmoRequestListener<NexmoCall>() {
void onError(@NonNull NexmoApiError error){
}
void onSuccess(@Nullable NexmoCall result){
}
});
- Supprimé
NexmoCallMember.getMember()et a ajouté des getters :
NexmoCallMember someCallMember;
NexmoUser user = someCallMember.getUser();
String memberId = someCallMember.getMemberId();
NexmoCallStatus statues = someCallMember.getStatus();
NexmoChannel channel = someCallMember.getChannel();
Nouveau
- Android
minSDKa maintenant 23 ans. CustomEventssoutien enNexmoConversation:
//NexmoCustomEvent:NexmoEvent:
String getCustomType()
HashMap<String, Object> getData()
NexmoMediaajouté àNexmoConversationpour la prise en charge des fonctions audio au sein d'unNexmoConversationcontexte :
NexmoMember someMember;
NexmoMedia media = someMember.media;
media.getEnabled();
media.getMuted();
media.getEarmuffed();
getNemxoEventType()enNexmoEventest publique
Fixe
NexmoCallMember.statusreflète l'état actuel de la jambe.- Ajout d'un garde à
NexmoClientpour empêcher les appels lorsque l'utilisateur n'est pas connecté. - Mise à jour
NexmoUserles valeurs manquantes après la connexion.
Supprimé
- Supprimé
conversation.getUser(). Il est possible d'accéder à l'utilisateur actuel avec :NexmoClient.getUser().
Ajouté
NexmoConversationenvoyer et recevoirCustomEventsNexmoCustomEvent:NexmoEvent:StringgetCustomType()HashMap<String, Object>getData()NexmoChannelS'opposer àNexmoMember.
NexmoMember someMember;
NexmoChannel channel = someMember.channel;
Version 0.3.0 - 4 juin 2019
Cette version contient de nombreuses petites corrections de bugs et des améliorations de la stabilité. Les principaux changements sont les suivants :
Ajouté
NexmoChannela été ajouté àNexmoMemberpour exposer les données du canal lorsqu'elles existent. LesNexmoChannelL'objet comprendtoetfromavec les données de la destination et de l'origine du canal.
Rupture des changements
Supprimé
NexmoMember.ChannelType- doit être remplacé parNexmoMember.Channel.from.typeNexmoMember.ChannelData- doit être remplacé parNexmoMember.Channel.from.data
Modifié
NexmoLoginListenera été améliorée et son interface mise à jour :onLoginStateChange()etonAvailabilityChange()étaient suppriméeonConnectionStatusChange(ConnectionStatus status, ConnectionStatusReason reason)a été ajoutée, en tant que version agrégée et améliorée des méthodes susmentionnées.
Ajouté
- Prise en charge de l'analyse syntaxique de l'élément
MemberIdqui a initié un appel.
Fixe
Améliorations pour les appels inter-plateformes dans l'application
Crash lors du traitement des notifications push sans initialisation du SDK
Crash lors de l'envoi
markAsDeliveredévénement
Version 0.3.0 - 4 juin 2019
Cette version contient de nombreuses petites corrections de bugs et des améliorations de la stabilité. Les principaux changements sont les suivants :
Ajouté
NexmoChannela été ajouté àNexmoMemberpour exposer les données du canal lorsqu'elles existent. LesNexmoChannelL'objet comprendtoetfromavec les données de la destination et de l'origine du canal.
Rupture des changements
Supprimé
NexmoMember.ChannelType- doit être remplacé parNexmoMember.Channel.from.typeNexmoMember.ChannelData- doit être remplacé parNexmoMember.Channel.from.data
Modifié
NexmoLoginListenera été améliorée et son interface mise à jour :onLoginStateChange()etonAvailabilityChange()étaient suppriméeonConnectionStatusChange(ConnectionStatus status, ConnectionStatusReason reason)a été ajoutée, en tant que version agrégée et améliorée des méthodes susmentionnées.
Ajouté
- Prise en charge de l'analyse syntaxique de l'élément
MemberIdqui a initié un appel.
Fixe
Améliorations pour les appels inter-plateformes dans l'application
Crash lors du traitement des notifications push sans initialisation du SDK
Crash lors de l'envoi
markAsDeliveredévénement
Version 0.2.67 - 17 avril 2019
Ajouté
Prise en charge de l'envoi et de la réception de DTMF pendant les appels
Prise en charge des émulateurs
Fixe
- Bugs lors de la mise à jour
CallMemberstatuts