2010-03-03 12 views
13

Mi chiedo se è possibile accedere alla scheda SIM con un'applicazione AndroidAccedi alla scheda SIM con un'applicazione Android?

+0

È necessario porre domande molto più specifici. Di cosa si tratta sulla scheda SIM a cui desideri accedere? – CommonsWare

+1

Probabilmente "scambiare gli APDU arbitrari" è ciò che vuole. –

+1

Voglio cimmunicare con un'applicazione javacard con protocollo APDu o BIP – Adrien

risposta

7

è possibile ottenere il codice IMEI come questo (ma è ciò che si vuole?), Solo un exemple:

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

Allo stesso modo , hai

String getSimCountryIso(): 

Restituisce il codice paese ISO equivalente per il codice paese del provider SIM.

String getSimOperator(): Restituisce l'MCC + MNC (codice di paese mobile + codice di rete mobile) del provider della SIM.

String getSimOperatorName(): Restituisce il nome provider di servizi (SPN).

String getSimSerialNumber(): Restituisce il numero di serie della SIM, se applicabile.

int getSimState(): Restituisce una costante che indica lo stato della scheda SIM del dispositivo.

String getSubscriberId(): Restituisce l'ID univoco dell'iscritto, ad esempio l'IMSI per un telefono GSM.

Per di più, uno sguardo a this page

e non dimenticare di aggiungere la giusta autorizzazione nel manifesto (getDeviceId() => Requires Permission: READ_PHONE_STATE)

+0

IMEI è associato al dispositivo telefonico, non alla scheda SIM. –

+0

Ma posso inviare il comando APDU alla scheda SIM per comunicare con un'applicazione javacard? – Adrien

+0

Questo è un framework di comunicazione SmartCard, che non consente di modificare il numero di telefono. –

5

Senza SmartCardAPI da SEEK (Secure Element Evaluation Kit) non è mai possibile. Nella maggior parte dei telefoni Android disponibili sul mercato, SmartCardAPI non è implementato. Quindi o costruisci il tuo Android dopo aver integrato il codice SmartCardAPI o attendi di avere un telefono decente con questa funzione. È possibile trovare il file di patch per l'implementazione here. è possibile solo

2

di accesso alla scheda SIM per applicazioni di sistema:

basso livello di accesso alla scheda SIM non è disponibile per applicazioni di terze parti. Il SO gestisce tutte le comunicazioni con la carta SIM incluso l'accesso allo alle informazioni personali (contatti) sulla memoria della carta SIM. applicazioni, inoltre, non possono accedere agli ordini, in quanto questi sono gestite esclusivamente dallo strato di interfaccia radio (RIL). Il RIL non fornisce API ad alto livello per questi comandi.

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

+0

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

+0

@Miscreant: Thx. Ho aggiornato la mia risposta. – Robert

0

cerchiamo è quello più utile, ma la maggioranza Android telefoni non sono il supporto that.So, forse possiamo valutare carta SIM con un altro metodo, come ha letto gli sms (nella scheda SIM).

+0

Ciao, puoi fornire ulteriori spiegazioni? – Skynet

0

si dovrebbe usare IccFileHandler in api interal di Android utilizzando la riflessione di Java. Si trova a quadro/base/telefonia