Android 系统(258)---获取SIM卡手机号
Android 获取SIM卡手机号
相信APP在开发中经常用到SIM卡手机号,经过一些测试分析,提供一下个人的理解分析。手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张新的会换号码吗?是不会的.就是因为在你的手机号码对应的IMSI号 在移动运营商中被修改成新SIM卡的IMSI号码。
那么手机号为什么有的就能显示呢?
这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。
对于移动的用户,手机号码(MDN)保存在运营商的服务器中,而不是保存在SIM卡里。SIM卡只保留了IMSI和一些验证信息。手机每次入网注册的时候,都会以短信的形式将IMSI及验证信息上传到运营商的服务器,服务器在完成注册动作之后,会以短信的形式将注册的结果下发到手机里。下发的内容会因条件不同而不同。
如果服务器在下发的短信中,不包含手机的号码,手机是无法取得电话号码。如果短信中包含了号码,手机才会将其缓存,以备他用.此外,对于其他运行商的SIM卡或者UIM卡,MDN有可能保存在UIM卡中。100%能够取得本机号码不太可能。
移动神州行,联通的卡是可以取到的.动感地带的取不到.别的卡还没有试过.
能够读取SIM卡号的话应该有前提.那就是SIM卡已经写入了本机号码,不然是无法读取的。
如果SIM已经写入了本机号码,通过下面的代码可以获取到本机号码:
//创建电话管理
TelephonyManager tm = (TelephonyManager)
//与手机建立连接
activity.getSystemService(Context.TELEPHONY_SERVICE);
//获取手机号码
String phoneId = tm.getLine1Number();
//记得在manifest file中添加
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
各个Android版本差异看这里http://blog.csdn.net/wds1181977/article/details/50594977
Android 系统(258)---获取SIM卡手机号相关推荐
- Android 获取SIM卡手机号
相信APP在开发中经常用到SIM卡手机号,经过一些测试分析,提供一下个人的理解分析.手机号码不是所有的都能获取.只是有一部分可以拿到.这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡 ...
- Android开发之获取SIM卡信息和手机号码
获取SIM卡信息和手机号码的工具类,记录一下方便以后使用 import android.content.Context; import android.telephony.TelephonyManag ...
- android 双卡开发获取sim卡默认数据卡,获取sim卡信息,sim1卡,sim2卡 2G/3G/4G信号强度
1:默认数据卡 private int getDefalutDataID(){SubscriptionManager subscriptionManager = (SubscriptionManage ...
- android AT指令获取SIM卡ICCID
1.打开终端 # adb shell # cat /dev/TTYEMS02 2.打开另一终端,发送AT指令(ICCID为20位) # echo "at^DCID\r" > ...
- android 获取sim卡,Android 获取手机SIM卡运营商
直接上代码: /** * 获取SIM卡运营商 * * @param context * @return */ public static String getOperators(Context con ...
- android 获取sim卡operator
android 获取sim卡运营商信息 TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHO ...
- Android如何获取SIM卡信息
android 获取sim卡运营商信息 TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHO ...
- Android 获取SIM卡信息
android 获取sim卡运营商信息 TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHO ...
- 安卓系统根据SIM卡槽ID获取SIM卡信息
导入一个包: import android.telephony.SubscriptionManager; 声明变量: SubscriptionManager mSubscriptionManager ...
最新文章
- C#创建MQTT客户端接收服务器信息
- 推荐6个HTML5编辑器
- Windbg内核调试之四: Dump文件分析
- java程序设计题目_Java程序设计习题集(含答案).doc
- MongoDB 教程一: 安装和使用 (Mongodb启动命令mongod参数说明)
- Asp.net Ajax Control Toolkit设计编程备忘录(色眼窥观版)——第5回(错不了专辑)
- css让image不改变大小_如何改变图片大小
- V4L2抓取USB摄像头YUV视频数据代码
- 5G牌照发放了,但需要购买5G手机的用户应等明年再购买
- 正确使用“width:100%“
- java字符型变量有几个,Java 字符型变量
- 电脑出现missing operating system解决办法
- 辅材先生之打开传统向互联网+辅材这把锁
- 激活函数选取不当为什会造成梯度消失
- for和of引导的不定式结构的区别
- Fully Convolutional Networks for Semantic Segmentation
- 为什么要用收费邮箱,免费邮箱和付费邮箱的差别
- 数值计算方法之1——三种迭代公式对比
- Fixed Unsafe Object binding Checkmarx in Java,Java 解决 Unsafe Object binding
- 秋叶喻死亡,是用诗来