12

olan SIM'ler için aynı değeri döndürür Ben çift Sim sahip Android 5.1 cihazda MCC ve MNC numarasını (temel olarak IMSI numarasını istiyorum ama bunlar da yeterli olacaktır) almaya çalışıyordum her ikisi de aktif). 5.1 böylece ikili Sim destekler gibi böyle Abonelik yöneticisi kullandı:SubscriptionInfo.getMnc() farklı taşıyıcılar

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"); 
    } 

ve bu çıktıyı var:

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} 

MM (aynı ülke bunun aynı olacaktır) MNC olduğunu haber Taşıyıcılar farklı olsa da aynı. Eğer tuş kilidi uygulaması doğru hem sim için MNC alır görebileceğiniz gibi

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} 

: Telefonu kapatarak iken

benim LogCat bu satırları gördüm.

yüzden tuş kilidi uygulamanın kod araştırdı ve ben here alınan Android Kaynaktan Kod kullanıyordum olarak kod aynı olduğunu bulduk:

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"); 
      } 
     } 

Biraz daha araştırdı ve buldu hatta tuş kilidi o uygulamalar MCC'yi sadece telefon kapandığında doğru alır, diğer zamanlarda her iki SIM için de aynı MNC'yi alır. Ancak taşıyıcı adı her zaman farklıdır.

Bu bir hata Android 5.1'de mi yoksa yanlış bir şey mi yapıyorum?

+0

düzeltildi Android 5.1 bir hatadır, bu android bir hata olduğunu varsayalım, telefon güncelledikten sonra düzeltildi. – Build3r

+0

Motorola Moto E Android 5.1 –

+0

çalıştıran aynı kesin sorun Ben de aynı sorunu var Android 6. – jollyroger

cevap

0

Aynı sorun Samsung J5'te Android 5.1'de de var, ancak Android 6.0'da Moto X Play'de çalışıyor. Android 5.1'de SubscriptionManager tanıtıldı beri, bu Android M.

İlgili konular