Android手机号码不是所有的都能获取
手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张新的会换号码吗?是不会的.就是因为在你的手机号码对应的IMSI号 在移动运营商中被修改成新SIM卡的IMSI号码。
  那么手机号为什么有的就能显示呢?
  这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。
  对于移动的用户,手机号码(MDN)保存在运营商的服务器中,而不是保存在SIM卡里。SIM卡只保留了IMSI和一些验证信息。手机每次入网注册的时候,都会以短信的形式将IMSI及验证信息上传到运营商的服务器,服务器在完成注册动作之后,会以短信的形式将注册的结果下发到手机里。下发的内容会因条件不同而不同。
  如果服务器在下发的短信中,不包含手机的号码,手机是无法取得电话号码。如果短信中包含了号码,手机才会将其缓存,以备他用.此外,对于其他运行商的SIM卡或者UIM卡,MDN有可能保存在UIM卡中。100%能够取得本机号码不太可能。
  移动神州行,联通的卡是可以取到的.动感地带的取不到.别的卡还没有试过.
  能够读取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手机号码不是所有的都能获取的更多相关文章
- 与Android应用程序相关的文件目录都有哪些?(转载)
		
与Android应用程序相关的文件目录都有哪些? | 浏览:1312 | 更新:2014-09-28 19:43 | 标签:android 一.方法介绍: 每个Android应用程序都可以通过Co ...
 - Android应用--简、美音乐播放器获取专辑图片(自定义列表适配器)
		
Android应用--简.美音乐播放器获取专辑图片(自定义列表适配器) 2013年7月3日简.美音乐播放器开发 第二阶段已增加功能: 1.歌词滚动显示 2.来电监听 3.音量控制 4.左右滑动切换歌词 ...
 - Android apk签名详解——AS签名、获取签名信息、系统签名、命令行签名
		
Apk签名,每一个Android开发者都不陌生.它就是对我们的apk加了一个校验参数,防止apk被掉包.一开始做Android开发,就接触到了apk签名:后来在微信开放平台.高德地图等平台注册时,需要 ...
 - Android 手机号码格式验证
		
package com.app.android01 ; import android.app.Activity; import android.os.Bundle; import android.te ...
 - Android 性能优化的方面方面都在这儿
		
又到周六了,鸿洋的不定期的周六放送又来了~~这次来谈谈性能优化吧.大家在工作中或多或少都会拿自家的应用和竞品app做比对,不可避免的需要做一些app性能优化的活.很多时候可能是策略上的调整,不过还是有 ...
 - android spinner 每行字体颜色都变化
		
final static int[] COLOR_LIST={Color.WHITE,Color.WHITE,Color.GRAY,Color.YELLOW,Color.RED}; spinner=( ...
 - Android 中布局的优化措施都有哪些?
		
1.尽可能减少布局的嵌套层级可以使用 sdk 提供的 hierarchyviewer 工具分析视图树,帮助我们发现没有用到的布局.2.不用设置不必要的背景,避免过度绘制比如父控件设置了背景色,子控件完 ...
 - Android 每次访问网络时,都需要判断是否有网络
		
/** * 在执行网络操作之前判断网络是否链接可用 * * @return true 可用 false 不可用 */ private boolean isOnline() { Connectivity ...
 - Android ListView中 每一项都有不同的布局
		
实现代码 Adapter的代码 其中:ViewHolder分别是三个不同的布局,也就是ListView中每一项的布局 TYPE_1...是三种类型. 在使用不同布局的时候,getItemViewTyp ...
 
随机推荐
- java 生成随机数
			
本段代码是生成的六位随机数.也可修改生成任意位随机数. int[] array = {0,1,2,3,4,5,6,7,8,9}; Random rand = new Random(); for (in ...
 - 各种element/format 在manage display  下的选项
			
long text = > plain text, summary and trimmed, trimmed,default, hiddenentity refernece => enti ...
 - 如何连接git bash和git hub
			
git config --global user.name "Your Real Name" 2 git config --global user.email you@email. ...
 - WCF技术剖析之二:再谈IIS与ASP.NET管道
			
原文地址:http://www.cnblogs.com/artech/archive/2009/06/20/1507165.html 在2007年9月份,我曾经写了三篇详细介绍IIS架构和ASP.NE ...
 - js节点问题
			
转载 http://dwt1220.blog.51cto.com/1028523/745402 本文出自 “dwt1220” 博客,请务必保留此出处http://dwt1220.blog.51cto. ...
 - 使用AndroidStudio编译NDK的方法及错误解决方案
			
参考资料: [android ndk]macos环境下Android Studio中利用gradle编译jni模块及配置:http://demo.netfoucs.com/ashqal/article ...
 - 35 个免费创新的响应式 HTML5 模板
			
HTML5 和响应式都是 Web 开发领域中的热门技术,本文向你推荐 35 个免费的响应式 HTML5 模板,将两种技术完美结合. Mori responsive HTML5 Template Res ...
 - Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html
			
Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, ...
 - Visual Studio中的快捷键
			
我们在使用Visual Studio的时候,如用一些快捷键,就能减少我们键盘和鼠标来回切换的次数,从而提高我们编码的速度,在此跟大家分享一些经常Visual Studio中用到的快捷键 自动缩进:选中 ...
 - think in java 读书笔记 1 ——移位
			
目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 在Think in Java中 ...