android获取sim卡运营商信息

zero-27 zero-27     2023-04-04     682

关键词:

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

注意:一些电话信息需要相应的权限。

// 获取服务提供商名字,比如电信,联通,移动用下面的方法第一种方法: 获取手机的IMSI码,并判断是中国移动\\中国联通\\中国电信

getSimOperatorName()  //Returns the Service Provider Name (SPN).

IMSI 国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志, 储存在SIM卡中,可用于区别移动用户的有效信息。

IMSI由MCC、MNC、MSIN组成,

其中MCC为移动国家号码,由3位数字组成 // 唯一地识别移动客户所属的国家,我国为460;

MNC为网络id,由2位数字组成// 用于识别移动客户所归属的移动网络,中国移动为00,中国联通为01,中国电信为03;

MSIN为移动客户识别码,采用等长11位数字构成 //唯一地识别国内GSM移动通信网中移动客户。

可以看出IMSI在MIN号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。

在同一个国家内,如果有多个CDMA运营商,可以通过MNC来进行区别.

所以要区分是移动还是联通,只需取得SIM卡中的MNC字段即可

String imsi = telManager.getSubscriberId();

if(imsi!=null)

if(imsi.startsWith(“46000″) || imsi.startsWith(“46002″))



//因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,134/159号段使用了此编号 //中国移动

else if(imsi.startsWith(“46001″))

//中国联通

else if(imsi.startsWith(“46003″))

//中国电信



第二种方法

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

String operator = telManager.getSimOperator();

if(operator!=null)

if(operator.equals(“46000″) || operator.equals(“46002″)|| operator.equals(“46007″))

//中国移动

else if(operator.equals(“46001″))

//中国联通

else if(operator.equals(“46003″))

//中国电信



在文件AndroidManifest.xml中添加权限其他方法具体使用方法请查看API 文档TelephonyManager中方法说明。

在文件 AndroidManifest.xml 中添加权限 <uses-permission Android:name= "android.permission.READ_PHONE_STATE"/>

功能 说明

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

android获取sim卡运营商信息

TelephonyManagertm=(TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE);注意:一些电话信息需要相应的权限。//获取服务提供商名字,比如电信,联通,移动用下面的方法第一种方法:获取手机的IMSI码,并判断是中... 查看详情

android判断sim卡属于哪个移动运营商

第一种方法:获取手机的IMSI码,并判断是中国移动\中国联通\中国电信TelephonyManagertelManager=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);/**获取SIM卡的IMSI码*SIM卡唯一标识:IMSI国际移动用户识别码(IMSI:InternationalMobileSubscri... 查看详情

android判断是不是有sim卡及运营商

...空就是没插卡;(2)1~3三位是国家码,460表示是中国的运营商,否则就是境外卡;(3)4~5两位是运营码:移动00、02、04、07,联通GSM系统使用01、06,电信03、05、11,铁通20;(4)不足之处:双卡手机是中国特色,AndroidSDK只能取... 查看详情

java获取手机及sim卡相关信息(代码片段)

查看详情

android判断是不是有sim卡及运营商

参考技术A/***获取SIM卡运营商**@paramcontext*@return*/publicstaticStringgetOperators(Contextcontext)TelephonyManagertm=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);Stringoperator=null;StringIMSI=tm.getSubscriberId();if(IMSI==null||IMSI.equals(""))returnope... 查看详情

手机显示无sim卡是怎么回事手机显示无sim卡原因

...接触不良导致SIM卡无法识别。建议您携带身份证到就近的运营商营业厅更换标准SIM卡使用。3.请测试SIM卡能否正常使用如果您的SIM卡在其他手机上也不能被识别,或者其他SIM卡在您的手机上可以被识别,很可能是您的SIM卡出现故... 查看详情

如何找到带有 CLA 字节 0x80 的空白 SIM 卡

...9-07-1617:03:51【问题描述】:我正在开发一个需要调用需要运营商权限的API的Android应用。我已经购买了一些空白SIM卡并尝试将我的应用程序的证书哈希写入它们。基于Android源代码,Android使用带有CLA字节0x80的APDU来检查卡上的规则... 查看详情

如何在双卡手机中仅获取一张 SIM 卡的短信?

...【发布时间】:2019-10-2915:31:42【问题描述】:我正在使用Android上的SMS功能。我已成功从手机中获取所有短信,我想按SIM1和SIM2过滤这些短信。我检查了列(获取短信的查询正在返回)但无法确定哪一列指示SIM信息我正在使用它来... 查看详情

安卓系统读取sim卡的是哪一个程序,在哪一个地方。

...equals("")?"未知":tManager.getSimOperatorName().toString();5.获取SIM卡运营商名称Stringnetwor 查看详情

java手机网络工具类,用于获取android_id,网络类型,以及sim卡的唯一识别码,运营商(代码片段)

查看详情

sim卡无服务是怎么回事手机卡突然变成无服务是怎么回事?

...往室外环境查看。如果处于比较偏远的地区,可能未覆盖运营商网络,可以通过周边使用相同运营商网络的手机信号判断是否为网络覆盖原因。4、观察SIM卡金属面是否存在污垢或氧化,可清洁后查看。如果使用剪裁的SIM卡,建... 查看详情

魅族mealt.sim.卡怎样切换数据

...758;Flyme4.0系统设置网络模式:手机设置-->网络-->网络运营商,即可选择您需要的网络格式;魅妹温馨提示:MX3刷Flyme4.2.8版本更改网络模式的方法:拨号界面,*#*#4636#*#*,进入后点“手机信息”,找到设置首先网络模式;可... 查看详情

sim卡交换攻击是如何运作的?

...程度,并发布一系列建议,以指导国家当局,运营商,银行和公民。什么是SIM卡交换攻击?在SIM卡交换攻击中,攻击者通过要求移动电信提供商将该号码链接到攻击者控制下的SIM卡来接管真实用户的手机号... 查看详情

如何在android中获取第二个sim的信息

】如何在android中获取第二个sim的信息【英文标题】:howtogetinfoofsecondsiminandroid【发布时间】:2016-02-0314:15:36【问题描述】:通过使用下面的方法,我得到了simone的信息TelephonyManagertelephonyManager=(TelephonyManager)this.getSystemService(Context.... 查看详情

android/ios开发如何100%获取手机号码

...的方式,通过sim卡的内置码(有点类似于MAC这样的东西)运营商来翻译成电话号码。所以你卡丢了,运营商给你一张新卡,非常的块,不要重新烧写你的号码。如果你需要获取到电话号码,可以指定用户发送短信到指定sp,或者... 查看详情

SIM 卡 GlobalPlatform 密钥在字段中的使用

...:问题1。当SIM制造商对SIM卡进行个性化处理,然后移动运营商将其交给最终用户时,GlobalPlatform(GP)密钥(ENC、MAC、KEK、...)是否有任何用途?只要我知道(KID/KIC/KIK)可以通过OTARFM 查看详情

苹果卡贴怎么用?往哪放进去啊?

...薄,速度快的处理器rgknse,这种小芯片里都是记录了各种运营商信息,卡贴的大小和SIM卡的大小是一模一样的,很薄一张,和你要使用的sim卡重合在一起,放到手机里面,就可以使用。 手机在用软件无法解锁的情况下,使用... 查看详情

苹果手机显示无sim卡怎么回事?

...睡眠/唤醒按钮,直到您看到Apple标志。五、检查是否存在运营商设置更新。前往“设置”-“通用”-“关于本机”,如果有可用的更新,您将看到选择“好”或“更新”的提示。六、从SIM卡托架中取出SIM卡,然后重新插入SIM卡,... 查看详情