如何在Android开发中获取SIM卡信息

如何在Android开发中获取SIM卡信息,第1张

android 获取sim卡运营商信息

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

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

getSimOperatorName() Returns the Service Provider Name (SPN) // 获取服务提供商名字,比如电信,联通,移动 用下面的方法 第一种方法: 获取手机的IMSI码,并判断是中国移动/中国联通/中国电信

TelephonyManager telManager = (TelephonyManager) getSystemService(ContextTELEPHONY_SERVICE);

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

IMSI由MCC、MNC、MSIN组成,其中MCC为移动国家号码,由3位数字组成, 唯一地识别移动客户所属的国家,我国为460;MNC为网络id,由2位数字组成, 用于识别移动客户所归属的移动网络,中国移动为00,中国联通为01,中国电信为03;

MSIN为移动客户识别码,采用等长11位数字构成。

唯一地识别国内GSM移动通信网中移动客户。所以要区分是移动还是联通,只需取得SIM卡中的MNC字段即可 /

String imsi = telManagergetSubscriberId();

if(imsi!=null){ if(imsistartsWith(“46000″) || imsistartsWith(“46002″))

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

}else if(imsistartsWith(“46001″)){

//中国联通

}else if(imsistartsWith(“46003″)){

//中国电信

} }

第二种方法 TelephonyManager telManager = (TelephonyManager) getSystemService(ContextTELEPHONY_SERVICE); String operator = telManagergetSimOperator();

if(operator!=null){ if(operatorequals(“46000″) || operatorequals(“46002″)|| operatorequals(“46007″)){

//中国移动

}else if(operatorequals(“46001″)){

//中国联通

}else if(operatorequals(“46003″)){

//中国电信

} }

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

在文件 AndroidManifestxml 中添加权限 <uses-permission android:name="androidpermissionREAD_PHONE_STATE"/>

TelephonyManager tel = (TelephonyManager) context getSystemService(ContextTELEPHONY_SERVICE);

String simOperator = telgetSimOperator();

IMSI共有15位,其结构如下: MCC+MNC+MIN MCC:Mobile Country Code,移动国家码,共3位,中国为460; MNC:Mobile Network Code,移动网络码,共2位,电信03,移动02,联通GSM 01,一个典型的IMSI号码为460030912121001; MIN共有10位,其结构如下: 09+M0M1M2M3+ABCD 其中的M0M1M2M3和MDN号码中的H0H1H2H3可存在对应关系,ABCD四位为自由分配。 可以看出IMSI在MIN号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个CDMA运营商,可以通过MNC来进行区别

功能 说明

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() 返回网络设备可用的类型。 这将是 下列其中一个值:

TelephonyManagerNETWORK_TYPE_UNKNOWN TelephonyManagerNETWORK_TYPE_GPRS TelephonyManagerNETWORK_TYPE_EDGE TelephonyManagerNETWORK_TYPE_UMTS READ_PHONE_STATE getPhoneType() 返回设备的类型。 这将是以下值之一: TelephonyManagerPHONE_TYPE_NONE TelephonyManagerPHONE_TYPE_GSM TelephonyManagerPHONE_TYPE_CDMA READ_PHONE_STATE getSubscriberId() 返回用户识别码(的IMSI)的设备 READ_PHONE_STATE

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

手机IMEI号码是国际移动通讯设备识别号,也称手机串号。查询IMEI号方法:设置-关于手机-状态-IMEI信息。

如需查询手机真伪或出厂日期等信息,由于市场上存在山寨机、水货、克隆机等,所以无法通过IMEI号准确鉴别手机真伪。请您带好购机发票、包修卡和机器,到就近的三星服务中心咨询服务中心人员机器能否享受包修,如果能够包修的机器即为三星正品行货机器。

vivo手机IMEI码查询方法如下:

1、进入手机设置--系统管理/更多设置--关于手机--(状态信息)中,可查询到;

(部分机型进入手机设置--我的设备--更多参数中可查询到)

2、手机包装盒上面的贴纸印有IMEI码,可进行查看。

3、若有更多疑问,可进入vivo官网/vivo商城APP--我的--在线客服或者vivo官网网页版--下滑底部--在线客服--输入人工客服进入咨询了解。

图文链接

imsi码是错的拼写,正确的是IMEI,IMEI可以在各大手机官网进行输入查询。

以小米网为例:

1、百度搜索小米手机官网。

2、然后在搜索结果中点击小米官网,进入。

3、进入官网后,点击右上角的服务选项。

4、然后在服务页面点击查询真伪选项。

5、进入该页面后,就可以输入IMEI码了。

Android获取IMSI和IMEI :

IMSI是一个唯一的数字,标识了GSM和UMTS 网络里的唯一一个用户

它存储 在手机的SIM卡里,它会通过手机发送到网络上。

IMEI也是一串唯一的数字,标识了GSM 和UMTS网络里的三星 Galaxy I9100。

它通常被打印在手机里电池下面的那一面,拨  #06# 也能看到它。

代码:

这里是你在Android里读出 唯一的 IMSI-ID / IMEI-ID 的方法。

Java:

String myIMSI =

androidosSystemPropertiesget(androidtelephonyTelephonyPropertiesPROPERTY_IMSI

);

// within my emulator it returns:   310995000000000

String myIMEI =

androidosSystemPropertiesget(androidtelephonyTelephonyPropertiesPROPERTY_IMEI

);

// within my emulator it returns:   000000000000000

手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手

机号码的数据写入到sim卡中。sim卡只有唯一的编号,供网络与设备识别那就是imsi号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。

试想,你的sim丢失后,补办一张新的会换号码吗 —不会就是因为在你的手机号码对应的 imsi号在移动运营商中被修改成新sim卡的imsi号码。

这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。

/   获得手机的一些标志符      @param c   @return String 手机的类型 /

public String fetch_status(Context c) {

TelephonyManager tm = (TelephonyManager) c

getSystemService(ContextTELEPHONY_SERVICE);//

String str = "";

String IMSI = tmgetSubscriberId();

str += "DeviceId(IMEI) = " + tmgetDeviceId() + "/n";

str += "DeviceSoftwareVersion = " + tmgetDeviceSoftwareVersion()

+ "/n";

str += "Line1Number = " + tmgetLine1Number() + "/n";

return str;

}

怎么查询iPhone的imei码

首先要知道自己手机的imei,然后在通过该imei码可以到苹果官方网站或果粉爱好者论坛等网站查询到该手机的相应信息,具体步骤可见如下。

步骤1、首先在这里我们要知道自己iphone的imei,该imei码怎么看呢,这里可以有3个方法:第一就是看你的iphone的背壳,这里有你手机的imei码一排小字。

步骤2、我们进入自己的手机:步骤(设置--通用--关于本机--下拉会看到imei码。

步骤3、还可以开机后拨号界面按 #06#,手机屏幕上显示15个数字,这就是本手机的IMEI码。

步骤4、然后可以对应这3个imei码是不是一致,若是一致,基本可以确认你的iphone的真伪了,下一次就是去验证是否水货和行货的问题了。

步骤5、进入苹果官网查询界面,如果你的信息能在此显示保修有效时间,那说明该手机在官网有登记。

以上就是关于如何在Android开发中获取SIM卡信息全部的内容,包括:如何在Android开发中获取SIM卡信息、手机imsi号手机imsi号怎么查、怎样获取IMEI等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9519755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存