`
zhouxiaoli521
  • 浏览: 562582 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)

阅读更多

Android开发平台中,可通过TelephonyManager 获取本机号码。

 

TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); txtPhoneNumber.setText(phoneMgr.getLine1Number()); //txtPhoneNumber是一个EditText 用于显示手机号

 

 

 

注:

根据Android的安全机制,在使用TelephonyManager时,必须在AndroidManifest.xml中添加<uses-permission android:name="READ_PHONE_STATE" /> 否则无法获得系统的许可。


 

手机型号 Build.MODEL

String MODEL The end-user-visible name for the end product.

sdk版本 Build.VERSION.SDK

String SDK This constant is deprecated. Use SDK_INT to easily get this as an integer.

及frimware版本号(系统版本号) Build.VERSION.RELEASE

String RELEASE The user-visible version string.

 

private void loadPhoneStatus() { TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); txtPhoneModel.setText(Build.MODEL); //手机型号 txtPhoneNumber.setText(phoneMgr.getLine1Number());//本机电话号码 txtSdkVersion.setText(Build.VERSION.SDK);//SDK版本号 txtOsVersion.setText(Build.VERSION.RELEASE);//Firmware/OS 版本号 }

事实上,Build能向我们提供包括 硬件厂商,硬件编号,序列号等很多信息 调用方法也都同上,很简单。

String BOARD The name of the underlying board, like "goldfish".
String BOOTLOADER The system bootloader version number.
String BRAND The brand (e.g., carrier) the software is customized for, if any.
String CPU_ABI The name of the instruction set (CPU type + ABI convention) of native code.
String CPU_ABI2 The name of the second instruction set (CPU type + ABI convention) of native code.
String DEVICE The name of the industrial design.
String DISPLAY A build ID string meant for displaying to the user
String FINGERPRINT A string that uniquely identifies this build.
String HARDWARE The name of the hardware (from the kernel command line or /proc).
String HOST  
String ID Either a changelist number, or a label like "M4-rc20".
String MANUFACTURER The manufacturer of the product/hardware.
String MODEL The end-user-visible name for the end product.
String PRODUCT The name of the overall product.
String RADIO The radio firmware version number.
String SERIAL A hardware serial number, if available.
String TAGS Comma-separated tags describing the build, like "unsigned,debug".
long TIME  
String TYPE The type of build, like "user" or "eng".
String UNKNOWN Value used for when a build property is unknown.
String USER

=================================================

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

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

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

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

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

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

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

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

1IMEI不存在于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卡中。这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。这就是为什么很多人得不到本机号码的原因。

 

 

 

 

http://archive.cnblogs.com/a/1931248/

http://blog.csdn.net/lifanupc/archive/2010/07/08/5721484.aspx

分享到:
评论

相关推荐

    centos7系统镜像中文件夹package的rpm包信息介绍

    在CentOS 7系统镜像中的`package`文件夹包含了447个RPM包,这些包是构建和运行CentOS系统所必需的基础组件。RPM(Red Hat Package Manager)是一种广泛使用的软件包管理器,它允许用户方便地安装、升级、查询和删除...

    SDK15.nRF52832-buttonless-dfu-development-tutorial

    本教程聚焦于SDK15.0.0版本下的nRF52832芯片进行无按钮DFU(Device Firmware Upgrade)的开发流程,帮助开发者实现高效、便捷的固件升级。nRF52832是一款由Nordic Semiconductor生产的低功耗蓝牙(Bluetooth Low ...

    H6 WiFi模块使用说明书.pdf

    文档是关于H6 WiFi模块的使用说明书,版本号为0.8,初次发布时间为2017年2月24日,属于初始版本。该说明书由全志技术有限公司(Allwinner Technology)编写并拥有版权。 2. 编写目的 说明书旨在介绍WiFi模组移植...

    MN316 R14 OpenCPU标准版固件升级测试经验分享

    在VScode中,打开SDK,找到并修改cm_demo_onenet.c中的用户SDK版本号,编译并生成新的固件文件。接着,通过logview工具生成差分包,然后利用串口助手将差分包发送给模组,执行升级。在升级完成后,通过发送特定指令...

    Rockchip Parameter File Format Ver1.3

    a) 固件版本(FIRMWARE_VER):版本号为"4.0.4",用于打包updata.img时识别固件版本,并在升级时由BootLoader传递给内核。 b) 机型(MACHINE_MODEL):例如"rk30sdk",用于打包updata.img时使用,不同的项目可以自行...

    gcc-arm-none-eabi-4_9-2015q3-20150921-win32.rar

    这个版本号代表了GCC的主要版本为4.9,它在2015年发布,是GCC 4.x系列的一个稳定版本。Q3(第三季度)表明这个版本是在2015年的第三个月份进行更新和维护的,确保了与当时最新技术的兼容性。 3. 在nRF52832 SDK中...

    BCM20736中文资料(OTA升级)

    本文档旨在为软件开发人员提供详尽的指南,介绍如何利用Broadcom的无线互联网连接为嵌入式设备开发安全的智能开发系统,并特别关注使用WICED智能开发系统创建支持安全无线固件升级(Over-the-Air Firmware Upgrade, ...

    CY7C68013 Window下开发组件(driver+firmare+APP)

    这个文件名可能表示Cypress公司的USB开发套件的一个版本,"CySuiteUSB"很可能是指Cypress的USB软件开发工具包,版本号为3.4.7,B204可能是该版本的一个小更新或补丁。这个套件通常包含驱动程序、固件开发工具、应用...

    升级工具2.73.6

    【升级工具2.73.6】是一款专为mp4固件设计的刷机和更新软件,其版本号为2.73.6CB,强调24位数据处理能力,表明该工具在处理数据时具备更高的精度和效率,旨在提供稳定且安全的设备升级体验。在IT领域,固件升级是...

    ML302_ML305_ML306_OpenCPU_3.1.0.2021072708_release.7z

    描述中提到的是"ML302 ML305 ML306 OpenCPU V3.1.0 20210727 最新版",这进一步确认了这是一个针对这三个特定型号的OpenCPU固件的最新更新,版本号与标题一致,强调了其是最新的版本。 标签"ML302 ML305 4GCAT1...

    PAN-OS 10.0 VM 下载,全球首个基于机器学习的新一代防火墙.rar

    版本号10.0可能代表着一个重大的里程碑,意味着该系统在功能和技术创新方面有显著提升。 3. **VM(虚拟机)**: 指的是运行在虚拟化环境中的操作系统实例。在这里,PAN-OS 10.0被设计成可以作为一个虚拟设备在VMware...

    BR61XX主控MP3刷机软件(带固件)

    "BR61XX_MPTool_SDK1.2.0SP5.rar" 这个文件很可能是BR61XX系列的主控MP3开发工具包,版本号为1.2.0 Service Pack 5。SDK一般包括了驱动程序、API文档、示例代码以及调试工具,帮助开发者编写和调试与硬件交互的应用...

    炬力固件修改工具FirmDevKit_1.45

    这个版本号为1.45的工具包,是开发者针对炬力芯片进行固件定制、调试和优化的重要辅助软件。通过FirmDevKit,用户能够更高效地进行固件编程,提高产品的性能和稳定性。 固件(Firmware)是存储在电子设备中控制硬件...

    NRF52840协议栈固件-softdevice.hex文件

    这里的数字部分(如7.2.0)代表固件的版本号,不同的版本可能对应着不同的功能改进、安全更新或兼容性修复。 NRF52840协议栈是Nordic Semiconductor提供的软硬件解决方案,它包括了完整的无线协议栈和微控制器驱动...

    onenet开发箱123

    而“123”可能是特定版本号或者项目的标识。 描述中的信息虽然简洁,但我们可以推测这个开发箱可能包含了用于测试和开发OneNet应用的所有必要硬件和软件组件。它可能包括传感器、微控制器(如STM,标签中提到的)、...

    GD32E230固件库用户手册

    最后,手册通过版本修订号1.0(Aug.2018)表明了固件库的版本信息,提示用户可能会有功能的更新或修正,建议用户在开发过程中及时关注最新的固件库更新。 总的来说,GD32E230固件库用户手册提供了丰富的关于GD32...

Global site tag (gtag.js) - Google Analytics