12

Ich habe versucht, die MCC und MNC Nummer (im Grunde möchte ich die IMSI Nummer, aber diese werden auch ausreichen) in Android 5.1 Gerät mit Dual Sim (beide aktiv). Als 5.1 Dual Sim unterstützt so nutzte ich die Subscription-Manager wie folgt aus:SubscriptionInfo.getMnc() gibt den gleichen Wert für beide SIMs mit verschiedenen Trägern zurück

SubscriptionManager manager = SubscriptionManager.from(this); 
List<SubscriptionInfo> sil = manager.getActiveSubscriptionInfoList(); 
    if (sil != null) { 
     for (SubscriptionInfo subInfo : sil) { 
      Log.v("TestMain", "SubInfo:" + subInfo); 
     } 
    } else { 
     Log.v("TestMain", "SubInfo: list is null"); 
    } 

und bekam die folgende Ausgabe:

07-24 18:28:32.162 3844-3844/? V/TestMain﹕ SubInfo:{id=1, mcc 405 mnc 803, iccId=89918030914128062059 simSlotIndex=0 displayName=Aircel Karnataka carrierName=Aircel — Aircel Karnataka nameSource=0} 
07-24 18:28:32.162 3844-3844/? V/TestMain﹕ SubInfo:{id=2, mcc 405 mnc 803, iccId=8991860044481968955 simSlotIndex=1 displayName=CARD 2 carrierName=Vodafone Karnataka nameSource=0} 

MCC Mitteilung (wird das gleiche Land, wie es gleich sein), dass MNC sind Das gleiche, obwohl die Träger unterschiedlich sind.

Während ich das Telefon auszuschalten war, sah ich diese Zeilen in meinem logcat:

07-24 18:31:02.295  616-616/? V/KeyguardUpdateMonitor﹕ SubInfo:{id=1, mcc 405 mnc 803, iccId=89918030914128062059 simSlotIndex=0 displayName=CARD 1 carrierName=Emergency calls only — Aircel Karnataka nameSource=0} 
07-24 18:31:02.295  616-616/? V/KeyguardUpdateMonitor﹕ SubInfo:{id=2, mcc 404 mnc 86, iccId=8991860044481968955 simSlotIndex=1 displayName=CARD 2 carrierName=Emergency calls only — Vodafone Karnataka nameSource=0} 

Wie Sie die Tastensperre Anwendung bekommt die MNC Recht sowohl für die SIM sehen können.

So erkundete ich den Code der Tastensperre Anwendung und stellte fest, dass der Code gleich ist, wie ich aus here -Code von Android Source gemacht mit:

protected void handleSimSubscriptionInfoChanged() { 
     if (DEBUG_SIM_STATES) { 
      Log.v(TAG, "onSubscriptionInfoChanged()"); 
      List<SubscriptionInfo> sil = mSubscriptionManager.getActiveSubscriptionInfoList(); 
      if (sil != null) { 
       for (SubscriptionInfo subInfo : sil) { 
        Log.v(TAG, "SubInfo:" + subInfo); 
       } 
      } else { 
       Log.v(TAG, "onSubscriptionInfoChanged: list is null"); 
      } 
     } 

ich einige mehr erforscht und festgestellt, dass auch die Tastensperre Anwendungen erhalten MCC nur dann richtig, wenn das Telefon ausgeschaltet wird, manchmal erhält es sogar den gleichen MNC für beide SIMs. Aber der Name des Frachtführers ist immer verschieden.

Ist das ein Fehler in Android 5.1 oder mache ich etwas falsch?

+0

Ich nehme an, das war ein Fehler in Android, wurde behoben, nachdem ich das Telefon aktualisiert. – Build3r

+0

Das gleiche genaue Problem auf Motorola Moto E unter Android 5.1 –

+0

Ich habe das gleiche Problem auf Android 6. – jollyroger

Antwort

0

Ich habe das gleiche Problem in Android 5.1 in Samsung J5, aber seine Arbeit in Android 6.0 in Moto X Play. Seit SubscriptionManager wurde in Android 5.1 eingeführt, ich denke, das ist ein Fehler in Android 5.1, die in Android M korrigiert wurde.