2016-07-18 1 views
1

Je tente d'accéder iccExchangeSimIO de TelephonyManager comme suit:méthode Accès TelephonyManager iccExchangeSimIO

TelephonyManager mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
byte[] uiccFileReadResponse = mTelephonyManager.iccExchangeSimIO(0x6F07,B0,0x00,0x00,0x09,"3F007FF06F07"); 

Je suis en mesure de récupérer une réponse positive à uiccFileReadResponse, mais après quelques secondes l'intention du système diffuse ACTION_UNSOL_RESPONSE_OEM_HOOK_RAW et l'appareil passe en mode de rappel d'urgence.

La seule façon de sortir de ce mode est un cycle d'alimentation. Mon appareil est rooté et j'ai l'autorisation MODIFY_PHONE_STATE.

Ce sera génial si quelqu'un peut me guider sur ce problème.

+0

Hummm ... lire la carte sim IMSI :) Oui ... quand – W0rmH0le

+0

le téléphone passe en état d'urgence, la seule réponse que je reçois pour APDU est 6F00 ... :( – AndroidUser

Répondre

1

Eh bien ..

Vous pouvez vérifier les journaux RIL (adb logcat -b radio) pour vérifier pourquoi le téléphone est en mode d'entrer d'urgence seulement. Probablement, est une erreur dans le côté CP (Processeur de communication). Si l'erreur est du côté RIL, vous pouvez déboguer ... Mais si l'erreur est du côté du CP, il sera difficile de corriger sans CP Logs (si possible à partir du côté App). Sans journal de CP, il est difficile de dire ce qui s'est mal passé et aussi, chaque appareil utilise un chipset différent (Qualcomm, Marvell, Infineon, Broadcomm (RIP) etc) ...

Essayez de tester sur différents appareils pour vérifier la résultat ...

Je ne sais pas s'il est possible .. Mais vous pouvez récupérer le IMSI via TelephonyManager..getSubscriberId():

TelephonyManager mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String mIMSI = mTelephonyManager.getSubscriberId();