/***  1.  getPhoneNumber方法返回当前手机的电话号码,* 同时必须在androidmanifest.xml中* 加入 android.permission.READ_PHONE_STATE 这个权限,*    2.  主流的获取用户手机号码一般采用用户主动发送短信到SP或接收手机来获取。* @param context* <a href="http://my.oschina.net/u/556800" class="referer" target="_blank">@return</a> */public static String getPhoneNumber(Context context){  TelephonyManager mTelephonyMgr;  mTelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);   return mTelephonyMgr.getLine1Number();  }

首先我们来明确几个概念:

SIM卡存储的数据可分为四类:

第一类是固定存放的数据。这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI)、鉴权密钥(KI)、鉴权和加密算法等等。

第二类是暂时存放的有关网络的数据。如位置区域识别码(LAI)、移动用户暂时识别码(TMSI)、禁止接入的公共电话网代码等。

第三类是相关的业务代码,如个人识别码(PIN)、解锁码(PUK)、计费费率等。

第四类是电话号码簿,是手机用户随时输入的电话号码。用户全部资料几乎都存储在SIM卡内,因此SIM卡又称为用户资料识别卡。

IMSI是一个唯一的数字, 标识了GSM和UMTS 网络里的唯一一个用户. 它存储 在手机的SIM卡里,它会通过手机发送到网络上. IMSI 与 SIM唯一对应

IMEI也是一串唯一的数字, 标识了 GSM 和 UMTS网络里的唯一一个手机.它通常被打印在手机里电池下面的那一面,拨 *#06# 也能看到它. IMEI 与 设备唯一对应.

1。IMEI不存在于SIM卡中,它是手机本身的串号。 
2。通常我们所说的手机号也不存在于SIM卡中,虽然SIM卡中有一个专门存储SIM卡本身号码的地方,但是此号码是通过手工设定的,而且是可以更改的。   SIM卡的识别通常使用IMSI号,这个对于SIM卡是唯一的。 
3。使用SimGetRecordInfo之类的函数获得SIM卡的IMSI号码能否成功依赖于设备制造商是否实现了此函数,据我所知在DOPOD的机器上是可以获得,但是在联想的机器上却不行,其他机器没有。 
4。获得IMEI以及IMSI可以通过RIL或者TAPI中的LINE操作的函数获得。

下面给出获取手机本机号码的代码:

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

String deviceid = tm.getDeviceId();

String tel = tm.getLine1Number();

String imei = tm.getSimSerialNumber();

String imsi = tm.getSubscriberId();

添加权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

注意,手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中。这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。这就是为什么很多人得不到本机号码的原因。上面的方法只能获取很老SIM卡的手机号码,目前主流的获取用户手机号码一般采用用户主动发送短信到SP或接收手机来获取。

转载于:https://www.cnblogs.com/jason-star/archive/2013/05/17/3083632.html

android获得手机号码代码相关推荐

  1. android 常用混淆,Android常用的代码混淆整理【原创】

    android里的代码混淆是比不可少的东西,下面就贴一些常用的代码混淆. #指定代码的压缩级别 -optimizationpasses 5 #包明不混合大小写 -dontusemixedcasecla ...

  2. 【Android 逆向】代码调试器开发 ( 使用 NDK 中的 ndk-build + Android.mk 编译 Android 平台的代码调试器可执行应用 )

    文章目录 一.Android 平台代码调试器代码 二.Android.mk 构建脚本内容 三.Application.mk 构建脚本内容 四.正式编译 五.博客资源 一.Android 平台代码调试器 ...

  3. 【Android 逆向】代码调试器开发 ( 等待进程状态改变 | detach 脱离进程调试 PTRACE_DETACH | 调试中继续运行程序 PTRACE_CONT )

    文章目录 一.等待进程状态改变 二.detach 脱离进程调试 PTRACE_DETACH 三.调试中继续运行程序 PTRACE_CONT 一.等待进程状态改变 上一篇博客 [Android 逆向]代 ...

  4. android Lint优化代码

    今天,简单的讲讲  android Lint优化代码. 作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk ...

  5. Android工具HierarchyViewer 代码导读(3) -- 后台代码

    在上文中,我们讲解了如何把HierarchyViewer的项目导入到Eclipse中,以便更高效阅读代码.本文将讲解HierarchyViewer的后台代码,建议大家可以先阅读<Android工 ...

  6. android确认密码代码,Android手机卫士之确认密码对话框

    本文接着实现"确认密码"功能,也即是用户以前设置过密码,现在只需要输入确认密码 布局文件和<Android 手机卫士--设置密码对话框>中的布局基本类似,所有copy一 ...

  7. js调用android本地java代码

    js调用android本地java代码 当在Android上使用WebView控件开发一个Web应用时,可以创建一个通过Javascript调用Android端java代码的接口.也就是可以通过Jav ...

  8. Android build.gradle文件详解(转述自《Android第一行代码》第二版)

    Android build.gradle文件详解 1. 最外层目录下的build.gradle文件 1.1 repostories 1.2 dependencies 2. app目录下的build.g ...

  9. android计算dpi代码_android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法...

    手机分辨率基础知识(DPI,DIP计算) 1.术语和概念 术语 说明 备注 Screen size(屏幕尺寸) 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 摩托 ...

最新文章

  1. leetcode 454. 四数相加 II c语言
  2. 广义平稳随机过程定义_广义平稳随机过程全解.ppt
  3. C# XML格式化显示
  4. HTML5: 两个viewport的故事(第二部分)
  5. 服务器复制文件进程,服务器复制文件进程
  6. 原画学习步骤,零基础一步步学原画!
  7. VirtualBox安装Windows XP——图解
  8. excel制图小技巧
  9. android 魅族手机bug多,魅族Flyme出现大面积Bug
  10. Scratch编程学习的好处
  11. 我的 6 年外包经验:印度、中国和菲律宾
  12. CSS渐变背景看这一篇就够了
  13. Windows Azure 解决方案系列: Real World Windows Azure: 与微软杰出工程师, Sean Nolan的访谈...
  14. 三年半经验,蚂蚁头条快手怎么选?网友:第一次看到头条比快手offer低的
  15. 工作日志(部门管理)
  16. 路由器重温——ISIS路由-2
  17. 16进制颜色代码大全
  18. 2014 hack.lu oreo house of sprit
  19. python-(6)常用的字符判断和转换以及开头结尾匹配
  20. 黑马12月开班时间出炉!戳文章免费试学!

热门文章

  1. Python抓取2500份招聘需求,数据显示未来最吃香的岗位是这个
  2. “工业4.0”下的可视化工厂建设方案
  3. 数据分析学习笔记—python简单操作EXCEL
  4. linux php错误日志在哪里,宝塔的php错误日志在哪
  5. 计算机科学与python编程导论_【基于Python】MIT OCW 计算机科学与编程导论
  6. 线性回归与梯度下降算法
  7. 语言用符号打印出落叶的图案_世界上最好玩的6种表情符号编程语言
  8. vue3,vite2,json数据通过拼接显示链接src
  9. python3中解码base64(线下base64解码模板)
  10. CPU启动计算机,如何加快双核CPU计算机win7启动速度