获取SIM卡信息的工具类

本工具类可以获取手机的IMSI、本机的手机号码、SIM卡的服务商。

移动、联通可正常获取到SIM卡的手机卡号,但是电信的获取不到。。。。

首先,需要在AndroidManifest.xml清单配置文件中添加权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

下面是工具类的代码

SIMCardInfo.java

import android.content.Context;
import android.telephony.TelephonyManager;

/**
 * 类描述:获取SIM卡信息的工具类
 * 作者:zuowenbin
 * 时间:16-5-10 09:35
 * 邮箱:[email protected]
 */
public class SIMCardInfo {

    /**
     * TelephonyManager提供设备上获取通讯服务信息的入口。 应用程序可以使用这个类方法确定的电信服务商和国家 以及某些类型的用户访问信息。
     * 应用程序也可以注册一个监听器到电话收状态的变化。不需要直接实例化这个类
     * 使用Context.getSystemService(Context.TELEPHONY_SERVICE)来获取这个类的实例。
     */
    private TelephonyManager manager;

    private String IMSI;    //国际移动用户识别码

    public SIMCardInfo(Context context){
        manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    }

    /**
     * 获取当前手机的SIM卡手机号码
     * @return NativePhoneNumber本机号码
     */
    public String getNativePhoneNumber(){
        String NativePhoneNumber = null;
        NativePhoneNumber = manager.getLine1Number();
        return manager.getLine1Number();
    }

    /**
     * 获取手机服务商信息
     * @return  ProvidersName手机服务商信息
     */
    public String getProvidersName(){
        String ProvidersName = null;
        //返回唯一的用户ID;就是这张卡的编号
        IMSI = manager.getSubscriberId();
        //IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
        if (IMSI == null || "".equals(IMSI)){
            ProvidersName = "获取服务商信息失败";
        }else if (IMSI.startsWith("46000") || IMSI.startsWith("46002")){
            ProvidersName = "中国移动";
        }else if (IMSI.startsWith("46001")){
            ProvidersName = "中国联通";
        }else if (IMSI.startsWith("46003")){
            ProvidersName = "中国电信";
        }

        return ProvidersName;
    }

}
时间: 2024-10-12 22:16:06

获取SIM卡信息的工具类的相关文章

Android如何获取SIM卡信息

android 获取sim卡运营商信息 TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE); TelephonyManager 的使用 TelephonyManager 提供设备上获取通讯服务信息的入口,应用程序使用这个类的方法来获取电话的服务商或者状态.程序也可以注册一个监听器来监听电话状态的改变. 不需要直接实例化这个类,使用Context.getSystemS

Android开发之获取手机SIM卡信息

TelephonyManager是一个管理手机通话状态.电话网络信息的服务类.该类提供了大量的getXxx(),方法获取电话网络的相关信息. TelephonyManager类概述: 可用于訪问有关设备上的电话服务信息. 应用程序能够使用这个类的方法来确定电话服务和状态,以及訪问某些类型的用户信息.应用程序还能够注冊一个侦听器以接收的电话状态变化通知. 你不能直接实例化这个类;相反,你能够通过Context.getSystemService(Context.TELEPHONY_SERVICE)方

SIM卡信息的管理

MTK平台上,所有插入到手机中的SIM卡的信息都会存储在数据库com.android.providers.telephony中. 原始的数据库 图表 1 SimInfo数据表的结构 从上图示中,我们可以看到siminfo表的大致结构,包含字段:_id, display_name, name_source, number, display_number_format, icc_id, color, slot, operator, data_roaming.Siminfo表的ContentProvi

android 判断网络连接、sim卡信息以及ping操作是否网络连接正常

  //判断是否为wifi连接     public boolean isWifiConnected(Context context) {         if (context != null) {             ConnectivityManager mConnectivityManager = (ConnectivityManager) context                     .getSystemService(Context.CONNECTIVITY_SERVI

Java获取时间 时间计算 转换时间工具类

Java获取时间 时间计算 转换时间工具类 JAVA日期工具类 package com.mh.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 时间日期转换工具类 */ public class DateTimeUtil { /** *

android何如获取SIM卡提供国家代码(ISO)

[html] view plaincopy TelephonyManager telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); telManager.getSimCountryIso(); SIM卡的序列号 [html] view plaincopy TelephonyManager telManager = (TelephonyManager)getSystemService(Context.

Android 读SIM卡信息

TelephonyManager的应用 手机的最主要功用就是打电话,如果没有电信公司提供的SIM卡,就不能正常地拨打电话,那么,我们有什么方法可以取得SIM卡的状态及相关资料呢? Android API中的TelephonyManager(Android.telephony.TelephonyManager)对象,提供了几个方法可以快速取得SIM卡的状态及相关信息.程序中以getSystemService(TELEPHONY_SERVICE)来取得TelephonyManager对象,以Tele

获取Spring容器Bean对象工具类

在开发中,总是能碰到用注解注入不了Spring容器里面bean对象的问题.为了解决这个问题,我们需要一个工具类来直接获取Spring容器中的bean.因此就写了这个工具类,在此记录一下,方便后续查阅.废话不多说,直接上代码. 一.代码 package com.zxy.demo.spring; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext;

android 获取sim卡运营商信息(转)

TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE); 注意:一些电话信息需要相应的权限. // 获取服务提供商名字,比如电信,联通,移动用下面的方法第一种方法: 获取手机的IMSI码,并判断是中国移动\中国联通\中国电信 getSimOperatorName() //Returns the Service Provider Name (SPN). IMSI 国际移动