2016-11-19 17 views
1

TelephonyManagerを使用していて、SIM1のSubscriberID(IMSI)を取得できましたが、SIM2で同じ値を取得できませんでした。しかし、私は両方のSIMスロットでIMEI noを取得することができましたが、まだ私は第2シムのIMSIを取得することができません。この情報を得る方法はありますか?Android PhoneでSecond SimのIMSI Noを取得する方法

答えて

1

が、これは加入者IDを取得するためにハック方法ですREMEMBERテレフォニーマネージャからgetDeviceIdメソッドを使用することができ、SO

動作するすべてのデバイスで文句を言わないWORK ITをすることができますandroid.permission.READ_PHONE_STATEのAndroid 5.1.1上と上記とを必要な許可

(それは危険としてマークされているとして、上記のマシュマロに アンドロイドのバージョンをandroid.permission.READ_PHONE_STATE権限をユーザーに尋ねることを忘れないでください)

public String getSim1IMSI() { 
    String imsi = null; 
    TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 
    try { 
     Method getSubId = TelephonyManager.class.getMethod("getSubscriberId", int.class); 
     SubscriptionManager sm = (SubscriptionManager) getSystemService(TELEPHONY_SUBSCRIPTION_SERVICE); 
     imsi = (String) getSubId.invoke(tm, sm.getActiveSubscriptionInfoForSimSlotIndex(0).getSubscriptionId()); // Sim slot 1 IMSI 
     return imsi; 
    } catch (IllegalAccessException e) { 
     e.printStackTrace(); 
    } catch (InvocationTargetException e) { 
     e.printStackTrace(); 
    } catch (NoSuchMethodException e) { 
     e.printStackTrace(); 
    } 
    return imsi; 
} 


public String getSim2IMSI() { 
    String imsi = null; 
    TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 
    try { 
     Method getSubId = TelephonyManager.class.getMethod("getSubscriberId", int.class); 
     SubscriptionManager sm = (SubscriptionManager) getSystemService(TELEPHONY_SUBSCRIPTION_SERVICE); 
     imsi = (String) getSubId.invoke(tm, sm.getActiveSubscriptionInfoForSimSlotIndex(1).getSubscriptionId()); // Sim slot 2 IMSI 
     return imsi; 
    } catch (IllegalAccessException e) { 
     e.printStackTrace(); 
    } catch (InvocationTargetException e) { 
     e.printStackTrace(); 
    } catch (NoSuchMethodException e) { 
     e.printStackTrace(); 
    } 
    return imsi; 
} 
+0

ですこれを行うネイティブメソッド: 'tm.createForSubscriptionId(sm.getActiveSubscriptionInfoForSimSlotIndex(1).getSubscriptionId())。getSubscriberId()' – davkutalek

関連する問題