2010-08-04 3 views
0

Existe-t-il un moyen de récupérer le numéro de téléphone de l'utilisateur dans une application mobile? Je cherche à construire une sorte d'utilitaire de carnet d'adresses qui construit des numéros de téléphone et les laisse composer les nombres etc. en utilisant leur numéro de téléphone actuel. Existe-t-il un moyen de récupérer cette information?Existe-t-il un moyen de récupérer le numéro de téléphone de l'utilisateur dans une application mobile?

J'ai trouvé des moyens de le récupérer dans blackberry et android à partir de la carte sim, mais apparemment la valeur dans la carte sim ne garantit pas que c'est réellement leur nombre.

Répondre

3

Vous pouvez utiliser the TelephonyManager pour ce faire:

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
String number = tm.getLine1Number(); 

Le documentation for getLine1Number() dit cette méthode retourne null si le nombre est « indisponible », mais il ne dit pas quand le nombre pourrait être indisponible.

Vous devez donner à votre demande permission to make this query en ajoutant ce qui suit à votre Manifest: (. Vous ne devriez pas utiliser TelephonyManager.getDefault() pour obtenir le TelephonyManager comme that is a private undocumented API call and may change in future)

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

+0

Le numéro risque d'être indisponible si le mode Avion est activé ou si la carte SIM est verrouillée. De plus, toutes les cartes SIM n'ont pas cette information disponible, et si vous avez porté votre numéro, il ne sera pas nécessairement exact. –

2

pour Blackberry vous peut utiliser

Phone.getDevicePhoneNumber(false) 

Selon javadoc, cette méthode peut retourner null si aucun numéro de téléphone mber est actuellement disponible

Il existe une solution de contournement générale pour obtenir le numéro de mobile de l'utilisateur.

  1. Permet à l'utilisateur d'entrer son numéro de mobile. Supposons qu'il saisit 123456789
  2. Envoyez un SMS à ce numéro sur n'importe quel port (pas 0). E.g. envoyer un sms à 123456789 sur le port 5001.
  3. pour BlackBerry
    Lancer un message d'arrière-plan thread d'écoute
    Pour Nokia, Samsung, etc.
    enregistrer un registre de poussée dynamique sur le port 5001.
  4. Lorsque vous recevez un message comme. Numéro de l'expéditeur = numéro du destinataire = quel utilisateur a donné son numéro.
  5. Le numéro de l'utilisateur est vérifié.
+0

Belle méthode de vérification! – funkybro

+0

Pouvez-vous expliquer ce que vous voulez dire en envoyant des sms à un numéro sur un port? Vous voulez dire envoyer un sms? Cela ne coûte-t-il pas de l'argent à l'utilisateur? – erotsppa

+0

ouais je veux dire effectivement envoyer un SMS, mais ce sera juste un coût de vérification unique. – Vivart

Questions connexes