android 获取手机号码,由于运营商的管理方式的不同,所以获取手机号码的方式也可能完全相同.现在很多运营商并不会把手机号码存入sim卡中.

最简单的,比如说中国移动并不将手机号保存在sim卡中,只会存储imsi号,这样当你丢失sim卡后,可以买新卡还能使用原来的号码.这就有以下获取手机号码的方式.

方式一:此种方法比较简单,是android自带的方法,但是缺点是不是所有的号码都能获取到(国内大部分的号码获取不了,我的移动动感地带号码无法获取到).方法为:

TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
string phoneNum = phoneMgr.getLine1Number(); //获取到手机号

此方法需要权限:

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

此方法测试结果(引用:http://blog.csdn.net/shichaosong/article/details/7777398),由于本人没那么多卡,本人未测,仅供参考.

运营商 卡类型 结果

中国移动 动感地带:3.0 获取不到

中国移动 神州行卡 可以获取

中国移动  全球通 可以获取

中国电信 全球漫游天翼国际卡 获取不到

中国联通 世界风 64K OTA 获取不到

中国联通 沃 128K USIM 可以获取

方式二: 通过发送一条上行短信监听发送人获取手机号码(比如发送给10086),存到app缓存中,此方法优点是大部分的手机都能获取到号码,缺点也显而易见,首先是要获取用户的发短信权限,第二是可能会产生通讯费,第三是,为了不干扰用户,提高用户体验度,还得拦截,擦除发送和接收短信.

参考资料:

http://blog.csdn.net/sodino/article/details/5871537
http://macleo.iteye.com/blog/1608311
http://2402766.blog.51cto.com/2392766/1080837
http://www.eoeandroid.com/thread-313410-1-1.html

欢迎补充,欢迎指点~

android 获取手机号的更多相关文章

  1. delphi for android 获取手机号

    delphi for android 获取手机号 uses   System.SysUtils, System.Types, System.UITypes, System.Classes, Syste ...

  2. android获取手机号

    private String getPhoneNum(){ //与手机建立连接 TelephonyManager tm = (TelephonyManager)getSystemService(Con ...

  3. android手机获取手机号

    最近做到一个项目,需要获取手机号.项目中使用的手机卡为电信卡,那么就以此为例吧. 网上不符合需求的方法 Google了一下,网上的做法如下: //获取手机号码 TelephonyManager tm  ...

  4. android手机如何获取手机号

    两个方案:1 通过android.permission.READ_PHONE_STATE读取  2 通过短信过滤,读取手机号. 按照第1个方案,AndroidManifest.xml需要添加 < ...

  5. Android获取短信验证码

    Android开发中关于短息验证码的设计层出不穷,越来越多的应用为了更好的提高软件的安全性,开始使用通过服务器向用户发送验证码的方式,来保护用户个人信息的安全性.无论是用户注册时的信息验证还是当用户发 ...

  6. android 获取IMEI号

    android 获取 imei号码 核心代码: Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getDeviceId( ...

  7. android 获取 imei号码 及相关信息

    android 获取 imei号码 参考:http://www.cnblogs.com/luxiaofeng54/archive/2011/03/01/1968063.html 核心代码: Imei ...

  8. Android获取手机号码

    今天来说一下Android系统中怎么获取手机号 一.SIM卡存储的数据可分为四类,它们分别是: 第一类是固定存放的数据.这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMS ...

  9. Android获取内置sdcard跟外置sdcard路径

    Android获取内置sdcard跟外置sdcard路径.(测试过两个手机,亲测可用) 1.先得到外置sdcard路径,这个接口是系统提供的标准接口. 2.得到上一级文件夹目录 3.得到该目录的所有文 ...

随机推荐

  1. mysql中 case when的使用

    SELECT a.hsid, a.house_code, a.sale_date, a.pjid, COUNT( sdid ) AS num, b.hsid, b.pscid, b.hscode, b ...

  2. MySQL查询缓存详解

    一:缓存条件,原理 MySQL Query Cache是用来缓存我们所执行的SELECT语句以及该语句的结果集,MySql在实现Query Cache的具体技术细节上类似典型的KV存储,就是将SELE ...

  3. 使用C#通过Thrift访问HBase

    前言 因为项目需要要为客户程序提供C#.Net的HBase访问接口,而HBase并没有提供原生的.Net客户端接口,可以通过启动HBase的Thrift服务来提供多语言支持. Thrift介绍 环境 ...

  4. Face The Right Way

    Face The Right Way Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 2564   Accepted: 117 ...

  5. mysql表名大小写问题

               默认情况下,MySQL 将以小写保存表名.一个避免 MySQL 服务器小写问题方法是以 -O lower_case_table_names=0 启动 mysqld.默认情况下,这 ...

  6. Android 自学之核心服务

    所谓Android的核心服务主要包括熵服务(Entropy Service).电源管理器(Power Manager).Activity管理器(Activity Manager).通话寄存器(Tele ...

  7. Scala中的元组

    元组 元组使用()表示的数据结构 元组使用()表示的数据结构 还可以使用模式匹配访问 使用场景非常有限,用于函数返回值不止1个的情况下 看代码: /** * 元组 * @author Administ ...

  8. [改善Java代码]避免对象的浅拷贝

    建议43: 避免对象的浅拷贝 我们知道一个类实现了Cloneable接口就表示它具备了被拷贝的能力,如果再覆写clone()方法就会完全具备拷贝能力.拷贝是在内存中进行的,所以在性能方面比直接通过ne ...

  9. [设计模式]<<设计模式之禅>>之关于单一职责原则

    单一职责原则的英文名称是Single Responsibility Principle,简称是SRP. 这个原则存在争议之处在哪里呢?就是对职责的定义,什么是类的职责,以及怎么划分类的职责.我们先举个 ...

  10. 关于JDK中的集合总结(一)

    静态方法只能继承,不能重写(Override). StringBufffer,数组,对象 都是容器. 加入数据,“zhangsan” true ,67, 三个数据数据类型不同,不能用数组作为集合,只能 ...