2016-11-19 79 views

回答

1

記住這是哈克的方式獲得的用戶ID,等都可能是它不會工作在所有設備上

將工作Android 5.1.1及以上版本並且需要android.permission.READ_PHONE_STATE許可

(記得索要用戶約android.permission.READ_PHONE_STATE許可,不得以上述棉花糖 的Android版本,因爲它被標記爲危險)

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

作爲安卓7.0的有一個本地方法來做到這一點:'tm.createForSubscriptionId(sm.getActiveSubscriptionInfoForSimSlotIndex(1).getSubscriptionId())。getSubscriberId()' – davkutalek

相關問題