TelephonyManager类主要提供了一系列获取手机与通讯相关的状态和信息的get方法,包含手机用户的信息、手机SIM的状态、电信网络的状态等。

TelephonyManager类的对象的获取:

TelephonyManager tm=(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

在开发的时候不要忘记了在配置文件里为其加入相应的权限哦

<!--同意读取电话状态SIM的权限-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

以下简单列出TelephonyManager类的一些方法

package com.xiaolijuan.getphoneinfo;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.NeighboringCellInfo;
import android.telephony.TelephonyManager;
import android.widget.TextView; import java.util.List; public class MainActivity extends Activity {
private TelephonyManager tm = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); /**
* 获取当前设备的位置
*/
tm.getCellLocation().toString(); /**
* 获取数据连接状态
*
* DATA_CONNECTED 数据连接状态:已连接
* DATA_CONNECTING 数据连接状态:正在连接
* DATA_DISCONNECTED 数据连接状态:断开
* DATA_SUSPENDED 数据连接状态:暂停
*/
tm.getDataState(); /**
* 返回唯一的设备ID
* 假设是GSM网络。返回IMEI;假设是CDMA网络。返回MEID;假设设备ID是不可用的返回null
*/
tm.getDeviceId(); /**
* 返回设备的软件版本号号
* 比如:GSM手机的IMEI/SV码。假设软件版本号是返回null。假设不可用返回null
*/
tm.getDeviceSoftwareVersion(); /**
* 返回手机号码
* 对于GSM网络来说即MSISDN,假设不可用返回null
*/
tm.getLine1Number(); /**
* 返回当前设备附近设备的信息
*/
List<NeighboringCellInfo> infos = tm.getNeighboringCellInfo();
for (NeighboringCellInfo info : infos) {
//获取邻居小区号
int cid = info.getCid();
//获取邻居小区LAC,LAC: 位置栏码。 为了确定移动台的位置,每一个GSM/PLMN的覆盖区都被划分成很多位置区,LAC则用于标识不同的位置区。
info.getLac();
info.getNetworkType();
info.getPsc();
//获取邻居小区信号强度
info.getRssi();
} /**
* 返回ISO标准的国家码,即国际长途区号
*/
tm.getNetworkCountryIso(); /**
* 返回MCC+MNC代码 (SIM卡运营商国家代码和运营商网络代码)(IMSI)
*/
tm.getNetworkOperator(); /**
* 返回移动网络运营商的名字(SPN)
*/
tm.getNetworkOperatorName(); /**
* 获取网络类型
*
* NETWORK_TYPE_CDMA 网络类型为CDMA
* NETWORK_TYPE_EDGE 网络类型为EDGE
* NETWORK_TYPE_EVDO_0 网络类型为EVDO0
* NETWORK_TYPE_EVDO_A 网络类型为EVDOA
* NETWORK_TYPE_GPRS 网络类型为GPRS
* NETWORK_TYPE_HSDPA 网络类型为HSDPA
* NETWORK_TYPE_HSPA 网络类型为HSPA
* NETWORK_TYPE_HSUPA 网络类型为HSUPA
* NETWORK_TYPE_UMTS 网络类型为UMTS
*
* 在中国,联通的3G为UMTS或HSDPA,移动和联通的2G为GPRS或EGDE,电信的2G为CDMA。电信的3G为EVDO
*/
tm.getNetworkType(); /**
* 返回设备的类型
*
* PHONE_TYPE_CDMA 手机制式为CDMA,电信
* PHONE_TYPE_GSM 手机制式为GSM,移动和联通
* PHONE_TYPE_NONE 手机制式未知
*/
tm.getPhoneType(); /**
* 返回SIM卡提供商的国家代码
*/
tm.getSimCountryIso(); /**
* 返回MCC+MNC代码 (SIM卡运营商国家代码和运营商网络代码)(IMSI)
*/
tm.getSimOperator(); /**
* 返回服务提供者的名称(SPN)
*/
tm.getSimOperatorName(); /**
* 返回SIM卡的序列号(IMEI),假设是返回null为不可用。
*/
tm.getSimSerialNumber(); /**
* 返回一个常数表示默认的SIM卡的状态。
*
* SIM_STATE_ABSENT SIM卡未找到
* SIM_STATE_NETWORK_LOCKED SIM卡网络被锁定,须要Network PIN解锁
* SIM_STATE_PIN_REQUIRED SIM卡PIN被锁定,须要User PIN解锁
* SIM_STATE_PUK_REQUIRED SIM卡PUK被锁定。须要User PUK解锁
* SIM_STATE_READY SIM卡可用
* SIM_STATE_UNKNOWN SIM卡未知
*/
tm.getSimState(); /**
* 返回唯一的用户ID,比如,IMSI为GSM手机。 */
tm.getSubscriberId(); /**
* 获取语音信箱号码关联的字母标识
*/
tm.getVoiceMailAlphaTag(); /**
* 返回语音邮件号码
*/
tm.getVoiceMailNumber(); /**
* 返回手机是否处于漫游状态
*/
tm.isNetworkRoaming(); ((TextView) findViewById(R.id.tv_info)).setText(getInfo());
} public String getInfo() {
String info = "获取设备编号: " + tm.getDeviceId();
info += "\n获取SIM卡提供商的国家代码: " + tm.getSimCountryIso();
info += "\n获取SIM卡序列号: " + tm.getSimSerialNumber();
info += "\n获取网络运营商代号: " + tm.getNetworkOperator();
info += "\n获取网络运营商名称: " + tm.getNetworkOperatorName();
info += "\n获取设备当前位置: " + tm.getCellLocation();
info += "\n获取手机类型: " + tm.getPhoneType();
info += "\n手机号码: " + tm.getLine1Number();
info += "\n国际长途区号: " + tm.getNetworkCountryIso();
info += "\n获取网络类型: " + tm.getNetworkType();
info += "\n获取数据连接状态: " + tm.getDataState();
return info;
}
}

以下一些解释:

(1)IMSI是国际移动用户识别码的简称(International Mobile Subscriber Identity)

IMSI共同拥有15位。其结构例如以下:

MCC+MNC+MIN

MCC:Mobile Country Code。移动国家码,共3位,中国为460;

MNC:Mobile NetworkCode。移动网络码。共2位

在中国,移动的代码为电00和02,联通的代码为01,电信的代码为03

合起来就是(也是Android手机中APN配置文件里的代码):

中国移动:46000 46002

中国联通:46001

中国电信:46003

(2)IMEI是International Mobile Equipment Identity (国际移动设备标识)的简称

IMEI由15位数字组成的”电子串号”,它与每台手机一一相应。并且该码是全世界唯一的

其组成为:

1. 前6位数(TAC)是”型号核准号码”,一般代表机型

2. 接着的2位数(FAC)是”最后装配号”。一般代表产地

3. 之后的6位数(SNR)是”串号”。一般代表生产顺序号

4. 最后1位数(SP)一般是”0″,为检验码。眼下暂备用

參考:http://www.cnblogs.com/linjiqin/archive/2011/02/26/1965682.html

Android TelephonyManager类的使用的更多相关文章

  1. Android之TelephonyManager类的方法详解

    TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法.其中包括手机SIM的状态和信息.电信网络的状态及手机用户的信息.在应用程序中可以使用这些get方法获取 ...

  2. Android之TelephonyManager类的使用案例

    TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法.其中包括手机SIM的状态和信息.电信网络的状态及手机用户的信息.在应用程序中可以使用这些get方法获取 ...

  3. android Activity类中的finish()、onDestory()和System.exit(0) 三者的区别

    android Activity类中的finish().onDestory()和System.exit(0) 三者的区别 Activity.finish() Call this when your a ...

  4. Android图像格式类及图像转换方法

    Android图像格式类及图像转换方法介绍 一款软件的开发和图像密切相关,特别是移动应用程序,在视觉效果等方面是至关重要的,因为这直接关系到用户的体验效果.在Android程序开发的过程中,了解存在哪 ...

  5. Android 服务类Service 的详细学习

    http://blog.csdn.net/vipzjyno1/article/details/26004831 Android服务类Service学习四大组建   目录(?)[+] 什么是服务 服务有 ...

  6. 项目源码--Android答题类游戏源码

    下载源码 技术要点: 1. 精致的答题UI 2. Android的Http通信技术 3. Android数据库QLITE与其他数据存储技术 4. Android在线音乐背景技术 5. Android答 ...

  7. android application类的用法

    android application类的用法 Application是android系统Framework提供的一个组件,它是单例模式(singleton),即每个应用只有一个实例,用来存储系统的一 ...

  8. Android Matrix类以及ColorMatri

    引自:http://www.chinabaike.com/t/37396/2014/0624/2556217.html Android Matrix类以及ColorMatrix类详解 最近在系统学习了 ...

  9. android资讯类软件框架《IT蓝豹》

    android资讯类软件框架 android资讯类软件框架,支持侧滑,并且首页viewpager切换tab,tab滑动到最右侧的时候提示滑动结束, 滑动到最左侧的时候切换滑动侧滑menu.左滑和侧滑处 ...

随机推荐

  1. 球形空间产生器sphere(bzoj 1013)

    Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁 ...

  2. SQL游标的使用与语法

    原文发布时间为:2010-08-07 -- 来源于本人的百度文章 [由搬家工具导入] 以[master].[dbo].[spt_values] 这个表为例子===declare @name nvarc ...

  3. Serializable在C#中的作用及其优点

    原文发布时间为:2009-10-27 -- 来源于本人的百度文章 [由搬家工具导入] Serializalbe - Enable the object can be Serialized into a ...

  4. 让你的man手册显示与众不同

    在~/.bashrc中加入如下代码: export LESS_TERMCAP_mb=$'\E[01;31m' export LESS_TERMCAP_md=$'\E[01;31m' export LE ...

  5. CocoaPods Setting up CocoaPods master repo无反应时的处理

    Setting up CocoaPods master repo,半天没有任何反应.原因无他,因为那堵墙阻挡了cocoapods.org...gitcafe和oschina都是国内的服务器,可以用它们 ...

  6. Scrapy学习-21-信号量

    scrapy信号量 定义 Scrapy使用信号来通知事情发生.您可以在您的Scrapy项目中捕捉一些信号(使用 extension)来完成额外的工作或添加额外的功能,扩展Scrapy. 虽然信号提供了 ...

  7. 学习总结——JMeter做WebService接口功能测试

    用JMeter作WebService接口功能测试(可以借助SoapUI来完成) SoapUI里面的操作: Wsdl文件或链接导入或添加到SoapUI打开待测请求:运行请求:取URL  SOAPActi ...

  8. JSON Web Token的使用

    定义 JSON Web Token(JWT)是一个非常轻巧的规范.这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息. 适用场景 1.用于向Web应用传递一些非敏感信息.例如完成加好友.下 ...

  9. LeetCode OJ-- 3Sum Closest

    https://oj.leetcode.com/problems/3sum-closest/ 给一列数和target,在这一列数中找出3个数,使其和最接近target,返回这个target. 一般思路 ...

  10. Codeforces Gym101473 A.Zero or One (2013-2014 ACM-ICPC Brazil Subregional Programming Contest)

    代码: #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #i ...