加入权限:<uses-permission android:name="android.permission.READ_PHONE_STATE" />

 package com.example.textphone;

 import android.content.Context;
import android.telephony.TelephonyManager; public class SIMCardInfo {
/**
* TelephonyManager提供设备上获取通讯服务信息的入口。 应用程序可以使用这个类方法确定的电信服务商和国家 以及某些类型的用户访问信息。
* 应用程序也可以注册一个监听器到电话收状态的变化。不需要直接实例化这个类
* 使用Context.getSystemService(Context.TELEPHONY_SERVICE)来获取这个类的实例。
*/
private TelephonyManager telephonyManager;
/**
* 国际移动用户识别码
*/
private String IMSI; public SIMCardInfo(Context context) {
telephonyManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
} /**
* Role:获取当前设置的电话号码 <BR>
* Date:2012-3-12 <BR>
* 这个目前是得不到的,因为移动策略问题
*/
public String getNativePhoneNumber() {
String NativePhoneNumber = "";
NativePhoneNumber = telephonyManager.getLine1Number();
return NativePhoneNumber;
} /**
* Role:Telecom service providers获取手机服务商信息 <BR>
* 需要加入权限<uses-permission
* android:name="android.permission.READ_PHONE_STATE"/> <BR>
*/
public String getProvidersName() {
String ProvidersName = null;
// 返回唯一的用户ID;就是这张卡的编号神马的
IMSI = telephonyManager.getSubscriberId();
// IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
// Log.i("tag",IMSI);
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;
} }

然后在事件中调用如下:

 SIMCardInfo siminfo = new SIMCardInfo(MainActivity.this);
if (v == button_getSIMInfo && siminfo != null) {
Log.i("tag", "~~~~服务商~~~~" + siminfo.getProvidersName());
// Log.i("tag", "~~~~~号码~~~~~" + siminfo.getNativePhoneNumber());
// number.setText(siminfo.getNativePhoneNumber());
privoid.setText(siminfo.getProvidersName());
} else {
Toast.makeText(MainActivity.this, "数据获取失败!",
Toast.LENGTH_LONG).show();
}

功能 说明

getCellLocation() 返回的单元格位置的装置 ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION

getDeviceId() 返回的IMEI / MEID的设备。 如果该设备是GSM设备然后IMEI号将被退回,如果该设备是一个CDMA设备然后MEID 将被退回 READ_PHONE_STATE

getLine1Number() 返回设备的电话号码(MSISDN号码) READ_PHONE_STATE

getNetworkOperatorName() 返回注册的网络运营商的名字

getNetworkOperator() 返回的MCC +跨国公司的注册网络运营商

getNetworkCountryIso() 返回注册的网络运营商的国家代码

getSimCountryIso() 返回SIM卡运营商的国家代码 READ_PHONE_STATE

getSimOperator() 返回SIM卡运营商的单个核细胞数+冶 READ_PHONE_STATE

getSimOperatorName() 返回SIM卡运营商的名字 READ_PHONE_STATE

getSimSerialNumber() 返回SIM卡的序列号 READ_PHONE_STATE

getNetworkType() 返回网络设备可用的类型。 这将是下列其中一个值:

TelephonyManager.NETWORK_TYPE_UNKNOWN

TelephonyManager.NETWORK_TYPE_GPRS

TelephonyManager.NETWORK_TYPE_EDGE

TelephonyManager.NETWORK_TYPE_UMTS READ_PHONE_STATE

getPhoneType() 返回设备的类型。

这将是以下值之一:

TelephonyManager.PHONE_TYPE_NONE

TelephonyManager.PHONE_TYPE_GSM

TelephonyManager.PHONE_TYPE_CDMA READ_PHONE_STATE

getSubscriberId() 返回用户识别码(的IMSI)的设备 READ_PHONE_STATE

getNeighboringCellInfo() 返回NeighboringCellInfo类代表名单相邻小区的信息,如果可用,否则将返回null ACCESS_COARSE_UPDATES

【工具类】获取手机sim卡的运营商的更多相关文章

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

    TelephonyManager是一个管理手机通话状态.电话网络信息的服务类.该类提供了大量的getXxx(),方法获取电话网络的相关信息. TelephonyManager类概述: 可用于訪问有关设 ...

  2. 017 Android 获取手机SIM卡序列号和读取联系人

    1.获取手机SIM卡序列号 //5.存储sim卡系列号 //5.1获取sim卡系列号 TelephonyManager manager = (TelephonyManager) getSystemSe ...

  3. Android 获取手机SIM卡运营商

    直接上代码: /** * 获取SIM卡运营商 * * @param context * @return */ public static String getOperators(Context con ...

  4. android 判断是否有sim卡及运营商

    判断是否有sim卡的方法:   int absent = TelephonyManager.SIM_STATE_ABSENT; if (1 == absent) { Log.d(TAG,"请 ...

  5. 三种尺寸:手机SIM卡使用指南

    毫无疑问目前卖的最火的手机非iPhone 5s莫属,相信仍有不少网友目前处于观望之中,由于iPhone 5s和iPhone 5c采用与iPhone相同的Nano-SIM卡,因此不少新用户在使用之前也徒 ...

  6. 使用java的Calendar工具类获取到本月的第一天起始时间和最后一天结束时间。

    1.使用java的Calendar工具类获取到本月的第一天起始时间和最后一天结束时间. package com.fline.aic.utils; import java.text.DateFormat ...

  7. Spring普通类/工具类获取并调用Spring service对象的方法

    参考<Spring普通类获取并调用Spring service方法>,网址:https://blog.csdn.net/jiayi_0803/article/details/6892455 ...

  8. Windows mobile 下读取手机SIM卡信息(转)

    Windows mobile 下读取手机SIM卡信息 c#改善 Windows mobile 下读取手机SIM卡信息

  9. ios如何获取手机的网络状态和运营商名称

    本文转载至 http://blog.csdn.net/justinjing0612/article/details/38313747 以前获取手机的网络状态和运营商名称都是似有API, 现在我们可以大 ...

随机推荐

  1. 一步步学习ASP.NET MVC3 章节总结

    请注明转载地址:http://www.cnblogs.com/arhat 对于<一步步学习ASP.NET MVC3>系列工15章,那么为了方便大家能够快速的预览,老魏在这里为这个系列提供一 ...

  2. Homework3

    1. 切换路径到想要保存的目录下,使用git init创建仓库: 2. 在仓库下创建文件Readme.txt,使用git add命令添加到暂存区和 git commit 命令提交到仓库: 3.  修改 ...

  3. 演示demo开发问题及解决方案集锦

    模型处理问题: 1. 3Dmax模型导入Unity单位设置: 自定义->单位设置->系统单位设置与显示单位比例都调成厘米 2. 3Dmax中材质贴图: 点击材质编辑器[在模式下可以选择精简 ...

  4. Android中Linux suspend/resume流程

    Android中Linux suspend/resume流程首先我们从linux kernel 的suspend说起,不管你是使用echo mem > /sys/power/state 或者使用 ...

  5. 实时数据处理环境搭建flume+kafka+storm:3.kafka安装

    1.  解压  tar -zxvf   2.配置/app/kafka_2.9.2-0.8.1.1/config/server.properties     #标识--     broker.id=0 ...

  6. 使用Yeoman搭建 AngularJS 应用 (8) —— 让我们搭建一个网页应用

    原文地址:http://yeoman.io/codelab/write-app.html 创建一个新的模板来显示一个todo的列表 打开views/main.html 为了从一个干净的模板开始,删除m ...

  7. Visual Studio 2013 之 Productivity Power Tools

    http://blogs.msdn.com/b/visualstudio_cn/archive/2014/02/20/visual-studio-2013-productivity-power-too ...

  8. Winform Datagridview 点击headercolumn排序

    /// <summary> /// 排序顺序 /// </summary> bool asc; /// <summary> /// Dgv点击排序 /// < ...

  9. [转载]LINQ 中的 select

    下面通过一些例子来说明怎样使用select,参考自:LINQ Samples 1.  可以对查询出来的结果做一些转换,下面的例子在数组中查找以"B"开头的名字,然后全部转成小写输出 ...

  10. PAT-乙级-1004. 成绩排名 (20)

    1004. 成绩排名 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入n名学生的姓名.学号.成绩,分 ...