美文网首页
手机IMEI等相关的一些信息获取

手机IMEI等相关的一些信息获取

作者: 涂涂家的小七呀 | 来源:发表于2019-08-28 10:19 被阅读0次
       public String getPhoneState() {
           try {
                 //TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
                //@SuppressLint("MissingPermission") String IMEIs = tm.getDeviceId();//获取设备IMEI
                String phoneName = android.os.Build.MODEL;//获取手机名称
                int phoneSDK = Build.VERSION.SDK_INT;//获取系统SDK版本号
                String phoneVersion = android.os.Build.VERSION.RELEASE;//获取手机系统版本号
                return phoneName + "," + phoneSDK + "," + phoneVersion;
            } catch (Exception e) {
                e.printStackTrace();
                LogLogs.logSave(SettingStorageModel.id, 3, "PhoneState--getPhoneState()", "获取手机信息", Arrays.toString(e.getStackTrace()));
                return null;
            }
        }
    
        //获取手机系统运营商
        public String getProvidersName(Context context) {
            TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            String ProvidersName;
            // 返回唯一的用户ID;就是这张卡的编号
            @SuppressLint({"MissingPermission", "HardwareIds"}) String IMSI = Objects.requireNonNull(telephonyManager).getSubscriberId();
            // IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
            if (IMSI != null) {
                if (IMSI.startsWith("46000") || IMSI.startsWith("46002") || IMSI.startsWith("46007") || IMSI.startsWith("41004")) {
                    ProvidersName = "移动 " + getNetworkType(telephonyManager.getNetworkType());
                } else if (IMSI.startsWith("46001") || IMSI.startsWith("46006")) {
                    ProvidersName = "联通 " + getNetworkType(telephonyManager.getNetworkType());
                } else if (IMSI.startsWith("46003") || IMSI.startsWith("46005") || IMSI.startsWith("46011")) {
                    ProvidersName = "电信 " + getNetworkType(telephonyManager.getNetworkType());
                } else {
                    ProvidersName = "未知 " + getNetworkType(telephonyManager.getNetworkType());
                }
            } else {
                ProvidersName = "未知 " + getNetworkType(telephonyManager.getNetworkType());
            }
            return ProvidersName;
        }
    
        //获取手机网络类型
        private String getNetworkType(int networkType) {
            // TODO Auto-generated method stub
            switch (networkType) {
                case TelephonyManager.NETWORK_TYPE_1xRTT:
                    return "1xRTT";
                case TelephonyManager.NETWORK_TYPE_CDMA:
                    return "CDMA";
                case TelephonyManager.NETWORK_TYPE_EDGE:
                    return "EDGE";
                case TelephonyManager.NETWORK_TYPE_EHRPD:
                    return "EHRPD";
                case TelephonyManager.NETWORK_TYPE_EVDO_0:
                    return "EVDO_0";
                case TelephonyManager.NETWORK_TYPE_EVDO_A:
                    return "EVDO_A";
                case TelephonyManager.NETWORK_TYPE_EVDO_B:
                    return "EVDO_B";
                case TelephonyManager.NETWORK_TYPE_GPRS:
                    return "GPRS";
                case TelephonyManager.NETWORK_TYPE_HSDPA:
                    return "HSDPA";
                case TelephonyManager.NETWORK_TYPE_HSPA:
                    return "HSPA";
                case TelephonyManager.NETWORK_TYPE_HSPAP:
                    return "HSPAP";
                case TelephonyManager.NETWORK_TYPE_HSUPA:
                    return "HSUPA";
                case TelephonyManager.NETWORK_TYPE_IDEN:
                    return "IDEN";
                case TelephonyManager.NETWORK_TYPE_LTE:
                    return "LTE";
                case TelephonyManager.NETWORK_TYPE_UMTS:
                    return "UMTS";
                case TelephonyManager.NETWORK_TYPE_UNKNOWN:
                    return "UNKNOWN";
                default:
                    return "UNKNOWN";
            }
        }
    
        /**
         * 获取手机IMEI号
         */
        @SuppressLint({"MissingPermission", "HardwareIds"})
        public static String getIMEI(Context context) {
            TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            return telephonyManager != null ? telephonyManager.getDeviceId() : null;
        }
    

    相关文章

      网友评论

          本文标题:手机IMEI等相关的一些信息获取

          本文链接:https://www.haomeiwen.com/subject/xgfpectx.html