Android : Services de téléphonie



Documents pareils
Projet Android (LI260) Cours 2

Visio Kit. Mode d'emploi

Téléphoner depuis le PC Vue d'ensemble

Conception d un outil d aide au déploiement d un réseau EV-DO dans un concept IMS pour l opérateur CAMTEL

Installation du point d'accès Wi-Fi au réseau

Jean-Louis Cech descente des Princes des Baux Orange Orange : 20 juin 2014.

Colt VoIP Access Colt Technology Services Group Limited. Tous droits réservés.

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction

Les connexions sans fil avec Android. JMF (Tous droits réservés) 1

CAS IT-Interceptor. Formation «Certificate of Advanced Studies»

2. DIFFÉRENTS TYPES DE RÉSEAUX

Advisor Master Advanced GSM SMS GPRS

VM Card. Manuel des paramètres des fonctions étendues pour le Web. Manuel utilisateur

LA VoIP LES PRINCIPES

Guide de configuration de la Voix sur IP

Android et le Cloud Computing

NovoSIP manuel de mise en service

LABO TELEPHONIE. Etude et réalisation de la Téléphonie sur IP (VoIP) avec Cisco Call Manager et Asterisk

Stéphanie Lacerte. Document technique. Connextek. 31 mai Cloudtel

QU EST-CE QUE LA VOIX SUR IP?

La Voix Sur IP (VoIP)

MOBILE AGENT BANKING SYSTEM BENEFICE ET CARACTERISTIQUE DU PRODUIT

Configuration O.box Table des matières

Installation d'un serveur DHCP sous Windows 2000 Serveur

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TP 2 : ANALYSE DE TRAMES VOIP

Généralités sur le Langage Java et éléments syntaxiques.

Passerelle VoIP pour PBX

Routeur client. PC accueil Postes IP

Guide de référence rapide sur la messagerie vocale d'avaya Distributed Office

nouvelles fonctions et modifications

Date : NOM Prénom : TP n /5 DISTANT : CONCEPTS ET DIFFÉRENCES

Groupe Eyrolles, 2000, 2004, ISBN :

Programmation de services en téléphonie sur IP

Editeur de solutions innovantes C 3. Solution globale managée de communication et de téléphonie sur IP

Education Delivery Intelligent Tool

La voix sur IP n'est pas un gadget, et présente de réels bénéfices pour l'entreprise.

FORMATION A LA VENTE D'IP OFFICE

Dossier de réalisation d'un serveur DHCP et d'un Agent-Relais SOMMAIRE. I. Principe de fonctionnement du DHCP et d'un Agent-Relais

Procédure Configuration Borne Wifi. Attribution d'une adresse IP

Nokia Internet Modem Guide de l utilisateur

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

Protocoles DHCP et DNS

Movie Cube. Manuel utilisateur pour la fonction sans fil WiFi

Installation FollowMe Q server

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

Le WiFi sécurisé. 16 Octobre 2008 PRATIC RIOM

NovoSIP manuel de mise en service

Information. Siemens Enterprise Communications

EGGACOM. Manuel d'utilisation (version beta) Nano et Master VoIP 1.0

Démarrez Audi connect.

Configuration du driver SIP dans ALERT. V2

Routeur Wi-Fi N300 (N300R)

Mise en place d un système de Téléphonie sur IP basé sur le logiciel Asterisk

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Procédure d'authentification sur Extradoc

BlackBerry Mobile Voice System

QoS et Multimédia SIR / RTS. Introduction / Architecture des applications multimédia communicantes

Objet : Guide d'installation et de maintenance pour "My IC Phone 8082" connecté à un OmniPCX Office R810

Gestionnaire de connexions Guide de l utilisateur

État Réalisé En cours Planifié

Thomson ST 2030 guide de configuration et d utilisation

Introduction de la Voix sur IP

KX ROUTER M2M SILVER 3G

Windows serveur 2012 : Active Directory

Un peu de vocabulaire

WINDOWS SERVER 2003-R2

Cette offre remplace et substitue, le cas échéant, la participation du Groupe Figaro aux frais de téléphonie personnel (notes de frais).

Atelier Le gestionnaire de fichier

Gigaset DX800A all in one Nouvelles fonctions et modifications

Application Note. EaseLoc Mise à jour de l application Over The Air (DOTA)

Téléphonie Cisco. - CME Manager Express = Logiciel dans un routeur, version simplifiée du call manager.

Manuel d'installation du logiciel

VOIP : Un exemple en Afrique

Audi connect Frequently Asked Questions

Programmation par les Objets en Java

Guide de connexion Wi-Fi sur un hotspot ADP Télécom

C2i B6 - Échanger et communiquer à distance

But de cette présentation

Configurer ma Livebox Pro pour utiliser un serveur VPN

Mise en place d un service de voix sur IP

KX GPRS SERIAL ETHERNET MODEM Le modem GPRS/EDGE «Machine to Machine»

Préparer, installer puis effectuer la mise en service d'un système. SUJET

Manuel de l utilisateur. Soft-phone - Client VoIP 3CX Version 6.0

Domino E5832S. Un conseil, une question : contactez votre service client. depuis un mobile, composez 555 (1) ou 777 professionnels et entreprises (1)

[ Sécurisation des canaux de communication

NovoSIP manuel de mise en service

SECURITE DES DONNEES 1/1. Copyright Nokia Corporation All rights reserved. Ver. 1.0

Manuel de configuration du Wi-Fi

Configurez votre Neufbox Evolution

Guide d'installation de l'amplificateur de signal pour périphériques mobiles Wi-Fi WN1000RP

FAQ GUIDE. SONIM XP1520 BOLT SL Français

Chapitre 1: Introduction générale

EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (43) Date de publication: Bulletin 2011/40

Manuel d installation de l application Dimona New via SMS

FAQ. Guide. SONIM XP5560 BOLT 2 Français

La VoIP et ToIP. - Les constructeurs de réseaux : Anciens : Alcatel, Ericsson, Nortel, Siemens, Lucent, NEC Nouveaux venus : NetCentrex, Cirpack

Guide d installation de l Amplificateur Universel Wifi N avec 4 ports réseau

Transcription:

Android : Services de téléphonie Frédéric Lemoine Conservatoire National des Arts et Métiers Lemoine Frédéric Tous droits réservés 1

TelephonyManager telephonymanager= (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); <uses-permission android:name="android.permission.read_phone_state"> </uses-permission> Information int getphonetype() String getdeviceid() String getdevicesoftwareversion() String getline1number() boolean hasicccard() Commentaire Type de téléphone (voir plus loin) L'identifiant unique du téléphone (IMEI) Le numéro de la version du logiciel utilisé Le numéro de téléphone de l'abonné Retourne vrai si l'appareil contient une carte SIM (Integrated Circuit Card) Lemoine Frédéric Tous droits réservés 2

String getnetworkoperatorname() String getnetworkoperator() Nom de l'opérateur de téléphonie Identifiant de l'opérateur de téléphonie String getnetworkcountryiso() Code ISO du pays de l'opérateur (fr, de...) int getnetworktype() String getsimcountryiso() String getsimoperatorname() String getsimoperator() String getsimserialnumber() int getsimstate() Type de la technologie radio employée (GPRS, EDGE, UMTS (3G)...). Code ISO du pays du fabriquant de la carte SIM (fr, de...) Le nom de l'opérateur de l'abonné (carte SIM) Identifiant de l'opérateur de l'abonné (carte SIM) Numéro de série de la carte SIM. Etat de la carte SIM (voir plus loin) Lemoine Frédéric Tous droits réservés 3

String getsubscriberid() String getvoicemailalphatag() String getvoicemailnumber() boolean isnetworkroaming() int getdataactivity() int getdatastate() int getcallstate() Identifiant de l'abonné Nom donné pour la messagerie. Habituellement: "Messagerie vocale". Numéro de la messagerie vocale. Vrai si l'appareil est en mode d'itinérance sur le réseau. Type de la connexion pour les données (voir plus loin) Etat de la connexion pour les données (voir plus loin) Etat de l'appel (voir plus loin) Lemoine Frédéric Tous droits réservés 4

int phonetype=telephonymanager.getphonetype(); Type TelephonyManager.PHONE_TYPE_NONE TelephonyManager.PHONE_TYPE_GSM TelephonyManager.PHONE_TYPE_CDMA TelephonyManager.PHONE_TYPE_SIP Commentaire Pas d'appels vocaux Norme la plus connue pour la téléphonie mobile (Global System for Mobile Communications). Système de codage des transmissions, utilisant la technique d'étalement de spectre (Code Division Multiple Access) Session Initiation Protocol: Téléphonie par internet (Voice over IP: VoIP) Lemoine Frédéric Tous droits réservés 5

int simstate=telephonymanager.getsimstate(); Etat de la carte SIM TelephonyManager.SIM_STATE_UNKNOWN TelephonyManager.SIM_STATE_ABSENT TelephonyManager. SIM_STATE_PIN_REQUIRED Commentaire Inconnu ou en cours de basculement entre 2 états. Aucune carte SIM n'est présente dans l'appareil. La carte SIM est verrouillée et réclame le code personnel de l'abonné (Personnal Identification Number). TelephonyManager. SIM_STATE_PUK_REQUIRED TelephonyManager. SIM_STATE_NETWORK_LOCKED TelephonyManager.SIM_STATE_READY La carte SIM est bloquée et réclame le code de déblocage (PIN Unlock Key). La carte SIM est verrouillée et réclame le code de déverrouillage. La carte SIM est prête et fonctionne. Lemoine Frédéric Tous droits réservés 6

int dataactivity=telephonymanager.getdataactivity(); Type de connexion TelephonyManager.DATA_ACTIVITY_NONE TelephonyManager.DATA_ACTIVITY_IN TelephonyManager.DATA_ACTIVITY_OUT TelephonyManager.DATA_ACTIVITY_INOUT TelephonyManager.DATA_ACTIVITY_DORMANT Commentaire Aucun trafic Données en réception Données en émission Données à la fois en réception et en émission Connexion active mais le lien a été rompu. Lemoine Frédéric Tous droits réservés 7

int datastate=telephonymanager.getdatastate(); Etat de la connexion TelephonyManager.DATA_DISCONNECTED TelephonyManager.DATA_CONNECTING TelephonyManager.DATA_CONNECTED TelephonyManager.DATA_SUSPENDED Commentaire Déconnecté En cours de connexion Connecté Connexion active mais pas de transmission. La transmission est suspendue du fait de la réception d'un appel par exemple. Lemoine Frédéric Tous droits réservés 8

int callstate=telephonymanager.getcallstate(); Etat de l'appel TelephonyManager.CALL_STATE_IDLE TelephonyManager.CALL_STATE_OFFHOOK TelephonyManager.CALL_STATE_RINGING Commentaire Aucun appel. Un appel est en cours de traitement. L'utilisateur a décroché. Un appel arrive. Le téléphone sonne. Lemoine Frédéric Tous droits réservés 9

Changement d'état du téléphone Changement d'état du téléphone PhoneStateListener. LISTEN_CALL_FORWARDING_INDICATOR PhoneStateListener.LISTEN_CALL_STATE PhoneStateListener.LISTEN_CELL_LOCATION PhoneStateListener.LISTEN_DATA_ACTIVITY PhoneStateListener. LISTEN_DATA_CONNECTION_STATE PhoneStateListener. LISTEN_MESSAGE_WAITING_INDICATOR PhoneStateListener. LISTEN_SIGNAL_STRENGTHS Commentaire L'indicateur de renvoi d'appel a changé d'état. Etat de l'appel (voir précédemment) Changement de cellule Changement dans la direction du trafic de données (voir précédemment) Changement d'état de connexion (voir précédemment) L'indicateur de dépôt d'un message vocal sur la messagerie a changé d'état. Force du signal reçu. Lemoine Frédéric Tous droits réservés 10

Affichage des informations sur les services de téléphonie Lemoine Frédéric Tous droits réservés 11

Changement d'état du téléphone PhoneStateListener psl=new PhoneStateListener() { @Override public void onsignalstrengthschanged(signalstrength signalstrength) { super.onsignalstrengthschanged(signalstrength); // Modification du niveau de signal int strength=signalstrength.getgsmsignalstrength(); } }; Lemoine Frédéric Tous droits réservés 12

Changement d'état du téléphone public void listen (PhoneStateListener listener, int events) @Override protected void onresume() { telephonymanager.listen(psl, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); } @Override protected void onpause() { super.onpause(); telephonymanager.listen(psl, PhoneStateListener.LISTEN_NONE); } Lemoine Frédéric Tous droits réservés 13

Changement d'état du téléphone Application affichant le niveau du signal reçu: Lemoine Frédéric Tous droits réservés 14

Gestionnaire de connexion ConnectivityManager connectivitymanager= (ConnectivityManager) getsystemservice(context.connectivity_service); Lemoine Frédéric Tous droits réservés 15

Gestionnaire de connexion Méthodes de la classe ConnectivityManager Méthode NetworkInfo getactivenetworkinfo() NetworkInfo[] getallnetworkinfo() NetworkInfo getnetworkinfo(int networktype) static boolean isnetworktypevalid(int networktype) int getnetworkpreference() void setnetworkpreference(int preference) boolean requestroutetohost(int networktype, int hostaddress) Commentaire Donne les caractéristiques de l'interface réseau active. Donne la liste de toutes les interfaces réseau et leurs caractéristiques. Donne les caractéristiques de l'interface réseau du type donné. Retourne vrai si le type d'interface réseau spécifié est valide. Donne le type d'interface réseau préféré. Modifie le type d'interface réseau préféré. S'assure qu'une route existe vers l'hôte ayant l'adresse spécifiée en empruntant l'interface réseau donnée. Lemoine Frédéric Tous droits réservés 16

Gestionnaire de connexion Les types d'interface (int networktype) Interface ConnectivityManager.TYPE_BLUETOOTH ConnectivityManager.TYPE_DUMMY ConnectivityManager.TYPE_ETHERNET ConnectivityManager.TYPE_MOBILE ConnectivityManager.TYPE_MOBILE_DUN Commentaire Bluetooth Interface factice. Ne doit pas être utilisée. Ethernet Mobile Spécifiques à certaines connexions (Multimedia Messaging Service, haute priorité...). Normalement identique à Mobile mais peut être différent. ConnectivityManager.TYPE_MOBILE_HIPRI ConnectivityManager.TYPE_MOBILE_MMS ConnectivityManager.TYPE_MOBILE_SUPL ConnectivityManager.TYPE_WIFI ConnectivityManager.TYPE_WIMAX Wifi Wimax (Worldwide Interoperability for Microwave Access) Lemoine Frédéric Tous droits réservés 17

Gestionnaire de connexion Informations obtenues par la classe NetworkInfo Méthode NetworkInfo.State getstate() NetworkInfo.DetailedState getdetailedstate() int gettype() int getsubtype() String gettypename() String getsubtypename() boolean isavailable() Commentaire Donne l'état de l'interface réseau Donne l'état détaillé de l'interface réseau Donne le type d'interface (wifi, mobile..) Donne le sous-type de l'interface. boolean isconnected() Est-on connecté? Donne le type d'interface (wifi, mobile..) sous la forme d'une chaîne de caractères. Donne le sous-type de l'interface sous la forme d'une chaîne de caractères. La connexion est-elle possible? Est-on par exemple dans la zone de couverture boolean isconnectedorconnecting() Est-on connecté ou en cours de connexion? Lemoine Frédéric Tous droits réservés 18

Gestionnaire de connexion Informations obtenues par la classe NetworkInfo boolean isfailover() boolean isroaming() String getextrainfo() String getreason() Indique que l'on tente de se connecter sur ce réseau car la connexion sur le précédent a échoué. Indique si l'itinérance est activée. (changement de cellule ou de réseau tout en restant en communication). Donne une information supplémentaire sur le réseau si disponible. Si disponible, indique pourquoi la tentative de connexion précédente a échoué. Lemoine Frédéric Tous droits réservés 19

Gestionnaire de connexion Etat que peut prendre l'interface réseau Etat standard (NetworkInfo.State) Etat détaillé (NetworkInfo.DetailedState) Commentaire CONNECTED CONNECTED Connecté CONNECTING CONNECTING En cours de connexion DISCONNECTED DISCONNECTED Déconnecté DISCONNECTING DISCONNECTING En cours de déconnexion SUSPENDED SUSPENDED Le trafic IP est suspendu. AUTHENTICATING BLOCKED FAILED IDLE OBTAINING_IPADDR En cours d'authentification L'accès au réseau est bloqué La tentative de connexion a échoué Prêt. En attente de connexion. Attend d'un serveur DHCP que celui-ci fournisse une adresse IP. UNKNOWN SCANNING En cours de recherche de points d'accès. Etat inconnu. Lemoine Frédéric Tous droits réservés 20

Gestionnaire de connexion // Réseau préféré int networkpreference= connectivitymanager.getnetworkpreference(); // Réseau actif NetworkInfo activenetworkinfo=connectivitymanager.getactivenetworkinfo(); String activenetworkname=activenetworkinfo.gettypename(); // Caractéristiques de l'ensemble des interfaces réseau disponibles NetworkInfo[] networkinfo=connectivitymanager.getallnetworkinfo(); for(networkinfo netwi:networkinfo) { String networkname=netwi.gettypename(); NetworkInfo.DetailedState nstate=netwi.getdetailedstate(); boolean isroaming=netwi.isroaming();... } Lemoine Frédéric Tous droits réservés 21

Gestionnaire de connexion Lemoine Frédéric Tous droits réservés 22

Gestionnaire de connexion Changement d'état ConnectivityManager.CONNECTIVITY_ACTION BroadcastReceiver connectionreceiver = new BroadcastReceiver() { @Override public void onreceive(context context, Intent intent) { if(intent.getaction().equals(connectivitymanager.connectivity_action)) { // L'état a changé } } }; Lemoine Frédéric Tous droits réservés 23

Gestionnaire de connexion Changement d'état IntentFilter filterconnectivity = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); @Override protected void onresume() { super.onresume(); registerreceiver(connectionreceiver, filterconnectivity); } @Override protected void onpause() { super.onpause(); unregisterreceiver(connectionreceiver); } Lemoine Frédéric Tous droits réservés 24