如何在 Android 中获取双卡序列号?

问题描述 投票:0回答:0

我想在 Android 中获取 Dual sim 的序列号。我尝试了很多,但我做不到。

我尝试了以下解决方案,但在新版本的 android 中没有任何效果。你的帮助对我很有帮助。提前致谢

方法一

 TelephonyManager tm = (TelephonyManager)
                getSystemService(Context.TELEPHONY_SERVICE);

 @SuppressLint("MissingPermission") String simID = tm.getSimSerialNumber(); // output is null
 @SuppressLint("MissingPermission") String telNumber = tm.getLine1Number(); // returns mobile number not serial number
 String s = tm.getMeid(1); //returns empty

方法二

  // This returns empty

 public static String getSerialNumber () {
        String serialNumber;
        try {
            Class<?> c = Class.forName ("android.os.SystemProperties");
            Method get = c.getMethod ("get", String.class);
            serialNumber = (String) get.invoke (c, "gsm.sn1");
            if (serialNumber.equals (""))
            serialNumber = (String) get.invoke (c, "ril.serialnumber");
            if (serialNumber.equals (""))
            serialNumber = (String) get.invoke (c, "ro.serialno");
            if (serialNumber.equals (""))
            serialNumber = (String) get.invoke (c, "sys.serialnumber");
            if (serialNumber.equals (""))
            serialNumber = Build.SERIAL;
            if (serialNumber.equals (""))
            serialNumber = null;
        } catch (Exception e) {
            e.printStackTrace ();
            serialNumber = null;
        }
        return serialNumber;
    }

方法 3 // 这也返回空

    String simSerialNo="";

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {

        SubscriptionManager subsManager = (SubscriptionManager) context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE); 

        List<SubscriptionInfo> subsList = subsManager.getActiveSubscriptionInfoList();

        if (subsList!=null) {
            for (SubscriptionInfo subsInfo : subsList) {
                if (subsInfo != null) {
                    simSerialNo  = subsInfo.getIccId());
                }
            }
        }
    } else {
        TelephonyManager tMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        simSerialNo = tMgr.getSimSerialNumber();
    }
}

我尝试了更多互联网上可用的解决方案。没有帮助

android sim-card caller-id
© www.soinside.com 2019 - 2024. All rights reserved.