Informations sur le téléphone
Pour récupérer des informations concernant le téléphone de d'un appareil, vous utiliserez le service TelephonyManager.
Ce service va permettre de déterminer l'état d'utilisation du téléphone, le type de connexion réseau, ...
Pour commencer, vous allez demander une instance du service de téléphonie en utilisant !
Context.getSystemService(TELEPHONY_SERVICE)
Ce qui donne au final:
TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
Là encore, vous n'allez pas lister l'ensemble des informations que récupérerable, mais juste l'essentiel pour le commun des mortels.
Type du téléphone
La méthode getPhoneType() retourne le type du téléphone: Rien, GSM ou CDMA.
TelephonyManager.PHONE_TYPE_NONE
TelephonyManager.PHONE_TYPE_GSM
TelephonyManager.PHONE_TYPE_CDMA
IMEI/MEID
Quelques définitions:
IMEI: International Mobile Equipement Identify, code unique sur 15 chiffres utilisé par les GSM ou UMTS (14 chiffres utiles et 1 de contrôle). Ce code permet de connaître le type d'appareil, de bloquer l'appareil en cas de vol, et surtout d'autoriser ou non l'appareil à utiliser les services qu'il propose suivant votre abonnement...
Ce code peut être déterminé en composant le *#06#
MEID est lui utilisé par les CDMA.
(Pour plus de détail: http://fr.wikipedia.org/wiki/International_Mobile_Equipment_Identity)
Pour récupérer l'IMEI (GSM) ou MEID (CDMA) de l'appareil, vous utiliserez la méthode getDeviceId().
Il sera nécessaire d'avoir la permissions suivantes: READ_PHONE_STATE.
String deviceid = tm.getDeviceId();
Numéro de téléphone
Quelques définitions:
MSISDN : Mobile Station ISDN Number, ou plus simplement le n° de téléphone !
(Voir http://fr.wikipedia.org/wiki/Mobile_Station_ISDN_Number)
Vous utiliserez la méthode getLine1Number() pour obtenir le n° de téléphone.
Là encore, il sera nécessaire d'avoir la permissions suivantes: READ_PHONE_STATE.
A partir d'Android
Version 2.0.
Informations opérateur
La méthode getNetworkOperatorName() retourne le nom de l'opérateur tel que enregistré sur le réseau.
La méthode getNetworkOperator() retourne le code de l'opérateur (MCC + MNC)
Enfin, la méthode getNetworkCountryIso() retourne le code pays de l'opérateur
Informations valables
uniquement pour un GSM.
String operatorname = tm.getNetworkOperatorName();
String operatorcode = tm.getNetworkOperator();
String operatoriso = tm.getNetworkCountryIso();
Informations sur la carte SIM
Sur le même principe que pour l'opérateur, vous allez récupérer les informations de la carte SIM:
getSimOperatorName() retourne le nom de l'opérateur.
getSimOperator() retourne le code SIM MNC + MCC
Petit plus avec getSimSerialNumber() qui retourne le n° de série de la SIM Serial Number.
Là encore, il sera nécessaire d'avoir la permissions suivantes: READ_PHONE_STATE.
String simoperator = tm.getSimOperatorName();
String simoperatorcode = tm.getSimOperator();
String simcountrycode = tm.getSimCountryIso();
String simserialno = tm.getSimSerialNumber();
Type de réseau
Vous utiliserez getNetworkType() pour connaître le type de connexion réseau utilisée sur le portable.
TelephonyManager.NETWORK_TYPE_UNKNOWN
TelephonyManager.NETWORK_TYPE_GPRS
TelephonyManager.NETWORK_TYPE_EDGE
TelephonyManager.NETWORK_TYPE_UMTS
Cell Location
Tout d'abord quelques définitions:
cellid: identifiant de la cellule
lac: Local Area Code
Pour récupérer les informations de la cellule en cours d'utilisation avec l'appareil, vous devez définir une des permissions suivantes:
ACCESS_COARSE_LOCATION ou ACCESS_FINE_LOCATION
GsmCellLocation loc = (GsmCellLocation) tm.getCellLocation();
int cellid = loc.getCid();
int lac = loc.getLac();
Ces informations pourront être utiles pour localiser l'appareil via GSM.
Exemple
Voici un exemple affichant différentes informations sur le téléphone dans un TextView
Un fichier main.xml pour avoir notre TextView
Et le fichier AndroidManifest pour avoir l'autorisation de lire les informations sur le téléphone