6
votes

Manager de téléphone Android pour détecter la carte SIM

Je travaille sur une application d'auto-démarrage Android qui dépend essentiellement de l'état de la carte SIM. Lorsque mon app auto démarre, j'en ai besoin pour vérifier où la carte SIM a été modifiée ou non. Après cela, je comparais la SIM actuelle avec le passé SIM en obtenant la préférence partagée. Mais l'application renvoie une exception de pointeur nulle lors de la nouvelle valeur de la carte SIM.

Je veux réagir des états SIM. P>

Lorsque je reçois le SIM_STATE_READY CODE> Etat Je veux Obtenez le nouvel état SIM du gestionnaire de téléphone. P>

  telMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
     int simState = telMgr.getSimState();
    
     switch (simState) 
    {
        case (TelephonyManager.SIM_STATE_ABSENT):
            System.out.println("*******************************************Sim State absent******************************");
            break;
        case (TelephonyManager.SIM_STATE_NETWORK_LOCKED): 
            System.out.println("*******************************************SIM_STATE_NETWORK_LOCKED******************************"+sim);
            break;
        
        case (TelephonyManager.SIM_STATE_PIN_REQUIRED): 
            System.out.println("*******************************************SIM_STATE_PIN_REQUIRED******************************"+sim);
        break;
        case (TelephonyManager.SIM_STATE_PUK_REQUIRED): 
            System.out.println("*******************************************SIM_STATE_PUK_REQUIRED******************************"+sim);
        break;
        case (TelephonyManager.SIM_STATE_UNKNOWN): 
            System.out.println("*******************************************SIM_STATE_UNKNOWN******************************"+sim);
        break;
        case (TelephonyManager.SIM_STATE_READY): 
        {
    
        }
    break;
    }
    default: break;
    }


0 commentaires

3 Réponses :


0
votes

ci-dessous le code vous aidera à récupérer le SIM SIM SIAL NO FORT>

TelephonyManager mTelephonyMgr =
(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);

String sSimSerial = mTelephonyMgr.getSimSerialNumber(); 


1 commentaires

Salut .. Je n'ai aucun problème lors de l'obtention du Sim Non. Je veux réagir sur les états SIM ..



1
votes

Essayez-vous votre application sur l'émulateur Android? Peut-être devez-vous essayer directement votre application sur le téléphone Android, je pense que l'émulateur Android ne peut pas prendre en charge votre application.


0 commentaires

3
votes

Si vous souhaitez réagir à une modification SIM, vous devez définir un auditeur:

final TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

    tm.listen(new PhoneStateListener() {
        @Override
        public void onServiceStateChanged(ServiceState serviceState) {
            //Code in here executed on Sim State change
        }

        @Override
        public void onDataConnectionStateChanged(int state) {

        }


0 commentaires