2010-03-03 14 views
13

Je me demande s'il est possible d'accéder à la carte SIM avec une application AndroidAccéder à la carte SIM avec une application Android?

+0

Vous devez poser beaucoup plus de questions spécifiques. De quoi s'agit-il avec la carte SIM à laquelle vous voulez accéder? – CommonsWare

+1

Probablement "échange arbitraire APDU-s" est ce qu'il veut. –

+1

Je veux communiquer avec une application javacard avec protocole APDu ou BIP – Adrien

Répondre

7

Vous pouvez obtenir le IMEI comme celui-ci (mais est-ce que vous voulez?), Juste un exemple:

mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
String imei = mTelephonyMgr.getDeviceId(); 

De même , vous avez

String getSimCountryIso(): 

Renvoie le code de pays ISO équivalent pour le code de pays du fournisseur SIM.

String getSimOperator(): Renvoie le MCC + MNC (indicatif de pays mobile + code de réseau mobile) du fournisseur de la carte SIM.

String getSimOperatorName(): Renvoie le nom du fournisseur de services (SPN).

String getSimSerialNumber(): Renvoie le numéro de série de la carte SIM, le cas échéant.

int getSimState(): Renvoie une constante indiquant l'état de la carte SIM de l'appareil.

String getSubscriberId(): Renvoie l'ID d'abonné unique, par exemple, l'IMSI pour un téléphone GSM.

Pour plus, jetez un oeil à this page

et ne pas oublier d'ajouter l'autorisation correcte dans le manifeste (getDeviceId() => Requires Permission: READ_PHONE_STATE)

+0

IMEI est associé à l'appareil téléphonique, pas à la carte SIM. –

+0

Mais puis-je envoyer une commande APDU à la carte SIM pour communiquer avec une application javacard? – Adrien

+0

Ceci est un cadre de communication SmartCard, qui ne vous permet pas de changer le numéro de téléphone. –

5

Sans SmartCardAPI de SEEK (Secure Element Evaluation Kit), ce n'est jamais possible. En majorité les téléphones Android disponibles sur le marché SmartCardAPI ne sont pas implémentés. Donc, soit vous construisez votre propre Android après l'intégration du code SmartCardAPI ou attendez un téléphone décent avec cette fonctionnalité à sortir. Vous pouvez trouver le fichier de correctif pour l'implémentation here.

2

accès à la carte SIM est uniquement possible pour les applications du système:

accès bas niveau à la carte SIM ne sont pas disponibles pour les applications tierces. L'OS gère toutes les communications avec la carte SIM, y compris l'accès aux informations personnelles (contacts) sur la mémoire de la carte SIM. Les applications ne peuvent pas non plus accéder aux commandes AT, car celles-ci sont gérées par exclusivement par le RIL (Radio Interface Layer). La RIL ne fournit aucune API de haut niveau pour ces commandes.

source: https://source.android.com/security/overview/app-security.html#sim-card-access

+0

Lien mis à jour: https://source.android.com/security/overview/app-security.html#sim-card-access – Miscreant

+0

@Miscreant: Thx. J'ai mis à jour ma réponse. – Robert

0

Seek est le plus utile une, mais la majorité des téléphones Android ne sont pas soutenir that.So, nous pouvons peut-être évaluer la carte SIM par une autre méthode comme lire les SMS (carte SIM).

+0

Salut pouvez-vous s'il vous plaît fournir plus d'explications? – Skynet

0

Vous devriez utiliser IccFileHandler dans l'API interi d'android en utilisant la réflexion Java. Il est situé au cadre/base/téléphonie