Android手机号码获取问题
手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张新的会换号码吗?是不会的.就是因为在你的手机号码对应的IMSI号 在移动运营商中被修改成新SIM卡的IMSI号码。
那么手机号为什么有的就能显示呢?
这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。
对于移动的用户,手机号码(MDN)保存在运营商的服务器中,而不是保存在SIM卡里。SIM卡只保留了IMSI和一些验证信息。手机每次入网注册的时候,都会以短信的形式将IMSI及验证信息上传到运营商的服务器,服务器在完成注册动作之后,会以短信的形式将注册的结果下发到手机里。下发的内容会因条件不同而不同。
如果服务器在下发的短信中,不包含手机的号码,手机是无法取得电话号码。如果短信中包含了号码,手机才会将其缓存,以备他用.此外,对于其他运行商的SIM卡或者UIM卡,MDN有可能保存在UIM卡中。100%能够取得本机号码不太可能。
移动神州行,联通的卡是可以取到的.动感地带的取不到.别的卡还没有试过.
能够读取SIM卡号的话应该有前提.那就是SIM卡已经写入了本机号码,不然是无法读取的。
//记得在manifest file中添加
< uses-permission
android:name="android.permission.READ_PHONE_STATE" />
具体处理代码:(程序在模拟器上无法实现,必须连接手机)
获取IMSI标识
String myIMSI = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI);
获取手机号
TelephonyManager telephonyMgr = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
String tel = telephonyMgr.getLine1Number();
获取IMEI
String imei = tm.getDeviceId();
分享到:
相关推荐
android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
NULL 博文链接:https://zhanglimijavaeye.iteye.com/blog/1745768
获取手机号和IMEI.rar
C# 获取IMEI即获取移动设备手机串号手机编码号源代码
在JNI中得到手机IMEI号,C++的拿来就能用
获取android手机硬件信息,如通讯录,手机版本,系统版本,SDK版本,所有安装包,本机号码,设备ID,IMEI,IMSI,GPS 地理位置定位
Android 工具类,集合了一些常用方法,包括获取手机号,获取手机Imei号,获取软件版本名称,验证手机号和邮箱等正则表达式,拨打电话,手机号加密等常用功能,虽然和简单,但是很常用,和实用
Android studio 2.1.2 Android 5.1.1 前言 上一篇介绍了如何获取ethernet的MAC地址,对于厂商来讲,除了MAC号,还有一项数据也很重要,那就是机器序列号,它是机器出厂时确定的,也是主要标识,每台机器都不一样。 要想...
//获取手机号码 TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); String deviceid = tm.getDeviceId();//获取智能设备唯一编号 String te1 = tm.getLine1Number();//...
对应的文档(源代码)如下: http://blog.csdn.net/a_flying_bird/article/details/38309021
第一种方式是获取IMEI,但是有的手机如果不是正品的话,就获取不到所以通过这一种方式还是会出现有的设备是没有唯一标识的 第二种方式获取手机卡的序列号,当然这种也不是唯一的,因为有的手机是双卡双待的所以可能...
因传统的移动终端设备标识如国际移动设备识别码(IMEI)等已被部分国家认定为用户隐私的一部分,并存在被篡改和冒用的风险,所以在Android 10及后续版本中非厂商系统应用将无法获取IMEI、MAC等设备信息。无法获取...
总结了一些获得手机相关信息的方法,有设备信息(imei,imsi,手机号码,sim卡序列号等);屏幕信息(屏幕的宽和高);语言信息(手机所使用的语言,所在国家);联网信息(手机当前连接的网络的信息)。
Android 关于设备状态和操作的API。 获取总大小 获取可用大小 获取SD卡的总大小 获取SD卡可用大小 获取总内存大小 获取可用内存大小 获取系统版本 安装客户端 获取FilesDir目录 ...获取手机IMEI 获取手机IMSI
第一步:安装最新版导航,先用360关闭导航的权限(获取手机号码 设备信息 应用列表)下载VIP版地图数据,在用rootExplorer进入展开·android/data/com.mapbar.android.mapbam/files下的license.dat文件,拷贝到...
另外为了保护隐私项目监控了发送短信、读取联系人数据、读取通话记录、获取您当前位置、获得IMEI号码、获得ROOT权限、监听来电状态、读取短消息内容等8项敏感权限的监控并且记录在本地SQLite数据库中,项目需要ROOT...
获取android设备信息 /** * android android设备信息类 * * @author 0907 * */ public class AndroidDeviceInfo { private String sysDateTime;// 设备系统时间 private String deviceName;// 设备名称及...
getAndroidID : 获取设备 AndroidID getMacAddress : 获取设备 MAC 地址 getManufacturer : 获取设备厂商 getModel : 获取设备型号 shutdown : 关机 reboot : 重启 reboot2Recovery : 重启到 recovery reboot2...
Android端获取手机IMEI,IMSI, MAC等授信功能的工具类,还包括屏幕宽高,屏幕亮度,网络类型判断等
+ 该应用不用于获取手机 root 权限或更改手机 IMEI 码。 + 需知道(或愿意学习)通过该应用使用命令行。 + 为了使用 Android 设备内置命令之外的命令,需安装一组命令行应用,比如 Busy Box 或 Debian chroot。 + ...