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. HttpServer的使用

    http://docs.oracle.com/javase/8/docs/jre/api/net/httpserver/spec/overview-summary.html 1.Package com ...

  2. c语言函数传递数组

    1.传递数组,打印不出来 #include <stdio.h> void solve() { printf(]); } int main() { int i; ;i<n;i++) { ...

  3. 关于删除linux多余内核

    step 1: 查找当前正在使用的内核文件的版本号 #uname -r step 2: 列出所有的内核文件,使用rpm 或者 dpkg(基于linux系统) 命令  #rpm -q kernel 或者 ...

  4. 12096 - The SetStack Computer UVA

    Background from Wikipedia: \Set theory is a branch of mathematics created principally by the German ...

  5. Android 高级UI设计笔记05:使用TextView实现跑马灯的效果

    1. 使用TextView属性实现跑马灯的效果: (1). 新建一个Android工程,命名为"MarqueeTextViewDemo",如下: (2). 来到activity_m ...

  6. The Story of self Parameter in Python, Demystified

      转自:http://www.programiz.com/article/python-self-why If you have been programming in Python (in obj ...

  7. hdu 4671 瞎搞

    题意:每个用户对数据库的查询请求都会首先用该数据库的服务器序列的第一个去执行任务,若第一个坏了,就由第二个执行.最多只会坏一个服务器.要求是考虑最多坏一个的情况下,所有服务器中执行用户查询的数目最大值 ...

  8. 关于System.Collections空间

    System.Collections命名空间包含可使用的集合类和相关的接口,提供了集合的基本功能. 该命名空间下的.NET非泛型集合类如下所示: — System.Collections.ArrayL ...

  9. Jersey(1.19.1) - Client API, Uniform Interface Constraint

    The Jersey client API is a high-level Java based API for interoperating with RESTful Web services. I ...

  10. Linux 命令 - ping: 向网络主机发送 ICMP ECHO_REQUEST 包

    ping 命令会向指定的网络主机发送特殊网络数据报 IMCP ECHO_REQUEST.多数网络设备收到该数据包后会做出回应,通过此法即可验证网络连接是否正常. 有时从安全角度出发,通常会配置部分网络 ...