2013-04-29 7 views
2

Je développe une application qui nécessite le numéro IMSI/téléphone de l'appareil (avec plusieurs cartes SIM) qui reçoit un sms. Ceci est fondamentalement à des fins d'identification dont SIM reçoit les sms et effectue ultérieurement d'autres opérations.Obtenir le numéro IMSI ou le numéro de téléphone de destination du message incomming (SMS)

J'ai soigneusement recherché l'API SMSMessage, mais je n'ai pas trouvé de solution appropriée.

Toute aide serait grandement appréciée.

Répondre

4

Comme je sais que vous ne pouvez pas obtenir le numéro de téléphone de destination, IMSI du SMS entrant.

Vous pouvez obtenir l'IMSI et le numéro de téléphone SIM de cette manière.

Vous pouvez obtenir le numéro IMSI de la carte SIM mais je ne pense pas que vous pourrez obtenir le numéro de téléphone de toutes les cartes SIM car certains fabricants n'ont pas enregistré le numéro de téléphone dans la carte SIM.

Dans Android, aucun moyen d'utiliser Android SDK pour obtenir la deuxième information SIM. Vous pouvez obtenir les informations de la première carte SIM uniquement.

Le SDK Android prend en charge les premières informations SIM et les fonctions Dual SIM sont disponibles du côté de la fabrication et ne sont donc pas officiellement prises en charge par le SDK Android.

Ajouter ce AndroidManifest.xml

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

Ajouter ceci dans lequel vous souhaitez obtenir des détails SIM.

TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 

Pour obtenir l'IMSI du 1er SIM

String imsi = telemamanger.getSimSerialNumber(); 

Pour obtenir le numéro de téléphone du 1er SIM

if(telemamanger.getLine1Number() != null) 
    String phoneNumber = telemamanger.getLine1Number(); 
+0

Merci pour votre answer.But quand je reçois un sms comment puis-je savoir par programme ce qui sim reçoit le sms? –

+0

En fait, 'telemamanger.getSimSerialNumber();' retourne l'ICCID (numéro de série simcard, unique et ** imprimé ** dans la carte SIM). Si vous avez besoin de l'IMSI (qui est ** stocké ** dans la carte SIM et peut être changé), vous voulez 'telemamanger.getSubscriberId(); ' Méfiez-vous cependant, une implémentation du fabricant ne renvoie que les chiffres non-personnels de l'IMSI (6 chiffres au lieu de 14-15) – baramuse

+0

maintenant dans OS 5.1 et ci-dessus, nous pouvons obtenir getSubscriberId() mais comment puis-je identifier quelle SIM reçoit le sms de IMSI ou getSubscriberId? – Achin

Questions connexes