找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 文档 工具 设计
查看: 365|回复: 0

Android中怎样取本机的手机号码

[复制链接]

76

主题

16

回帖

997

积分

管理员

湘南小侠

精华
0
热心
2
听众
1
威望
4
贡献
618
违规
0
书币
1660
注册时间
2019-11-4

忠诚勋章巡查标识

QQ
发表于 2020-4-17 08:53 | 显示全部楼层 |阅读模式
从技术层面而言,手机的SIM卡上并不会存储手机号码信息,只会存储IMSI(International Mobile Subscriber Identification Number)。手机号码(MSISDN)都是登记在HLR(Home Location Register)中的,在HLR中会把IMSI和MSISDN关联在一起。

中国移动的SIM卡里只有IMSI号码而没有存储手机号码,在中国移动的HLR中会有一张映射表,专门用于
把用户手机SIM卡的IMSI号映射成为用户的手机号码,这就是移动丢卡不丢号的业务也就是缘于此,而电信CDMA(原来联通CDMA)的机卡合一的手机卡里会同时存在IMSI和手机号码。

•客户端获取:在客户端对移动用户而言只能够获取诸如IMSI、IMEI号等,并不能直接获得手机号。而对电信CDMA机卡合一用户可以获取手机号码。
•服务器端获取:在早期的移动白名单中是能够获得明文的手机号的,最近移动策略变了,手机号变成了天书般的唯一串号。因此目前从服务器端直接获取手机号也不行了。
    目前能够想到的能够相对可靠地自动获取用户手机号的方法只有通过短信方式。

•通过短信方式:让用户上行一条短信,通过短信网关获取用户手机号,从而将用户id与手机号绑定 。

如何在Android上获取本机电话号码,目前Android上提供了一个API可以读取早期SIM卡上固化的号码,
[Java] 纯文本查看 复制代码
private String getPhoneNumber(){ 
TelephonyManager mTelephonyMgr; 
mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
return mTelephonyMgr.getLine1Number(); 
} 

上面的getPhoneNumber方法返回当前手机的电话号码,同时必须在androidmanifest.xml中加入 android.permission.READ_PHONE_STATE 这个权限,但是提示大家上面的方法只能获取很老SIM卡的手机号码,
目前主流的获取用户手机号码方法:
1.一般采用用户主动发送短信到SP或接收手机来获取。
2.通过走WAP网关获取.
天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号


免责声明:
本站所发布的第三方软件及资源(包括但不仅限于文字/图片/音频/视频等仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢某程序或某个资源,请支持正版软件及版权方利益,注册或购买,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To: admin@cdsy.xyz

QQ|Archiver|手机版|小黑屋|城东书院 ( 湘ICP备19021508号-1|湘公网安备 43102202000103号 )

GMT+8, 2024-11-21 19:43 , Processed in 0.066630 second(s), 32 queries .

Powered by Discuz! CDSY.XYZ

Copyright © 2019-2023, Tencent Cloud.

快速回复 返回顶部 返回列表