`

Android之TelephonyManager类的方法详解

阅读更多

 

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

    TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得,需要注意的是有些通讯信息的获取对应用程序的权限有一定的限制,在开发的时候需要为其添加相应的权限。

以下列出TelephonyManager类所有方法及说明

 

import android.app.Activity;
import android.os.Bundle;
import android.telephony.TelephonyManager;


public class TelManager extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		TelephonyManager tm = (TelephonyManager) this
				.getSystemService(TELEPHONY_SERVICE);

		/**
		 * 电话状态: 1.tm.CALL_STATE_IDLE=0 无活动 2.tm.CALL_STATE_RINGING=1 响铃
		 * 3.tm.CALL_STATE_OFFHOOK=2 摘机
		 */
		tm.getCallState();// int

		/**
		 * 电话方位:
		 */
		tm.getCellLocation();// CellLocation

		/**
		 * 唯一的设备ID: GSM手机的 IMEI 和 CDMA手机的 MEID. Return null if device ID is not
		 * available.
		 */
		tm.getDeviceId();// String

		/**
		 * 设备的软件版本号: 例如:the IMEI/SV(software version) for GSM phones. Return
		 * null if the software version is not available.
		 */
		tm.getDeviceSoftwareVersion();// String

		/**
		 * 手机号: GSM手机的 MSISDN. Return null if it is unavailable.
		 */
		tm.getLine1Number();// String

		/**
		 * 附近的电话的信息: 类型:List<NeighboringCellInfo>
		 * 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES
		 */
		tm.getNeighboringCellInfo();// List<NeighboringCellInfo>

		/**
		 * 获取ISO标准的国家码,即国际长途区号。 注意:仅当用户已在网络注册后有效。 在CDMA网络中结果也许不可靠。
		 */
		tm.getNetworkCountryIso();// String

		/**
		 * MCC+MNC(mobile country code + mobile network code) 注意:仅当用户已在网络注册时有效。
		 * 在CDMA网络中结果也许不可靠。
		 */
		tm.getNetworkOperator();// String

		/**
		 * 按照字母次序的current registered operator(当前已注册的用户)的名字 注意:仅当用户已在网络注册时有效。
		 * 在CDMA网络中结果也许不可靠。
		 */
		tm.getNetworkOperatorName();// String

		/**
		 * 当前使用的网络类型: 例如: NETWORK_TYPE_UNKNOWN 网络类型未知 0 NETWORK_TYPE_GPRS GPRS网络
		 * 1 NETWORK_TYPE_EDGE EDGE网络 2 NETWORK_TYPE_UMTS UMTS网络 3
		 * NETWORK_TYPE_HSDPA HSDPA网络 8 NETWORK_TYPE_HSUPA HSUPA网络 9
		 * NETWORK_TYPE_HSPA HSPA网络 10 NETWORK_TYPE_CDMA CDMA网络,IS95A 或 IS95B. 4
		 * NETWORK_TYPE_EVDO_0 EVDO网络, revision 0. 5 NETWORK_TYPE_EVDO_A EVDO网络,
		 * revision A. 6 NETWORK_TYPE_1xRTT 1xRTT网络 7
		 */
		tm.getNetworkType();// int

		/**
		 * 手机类型: 例如: PHONE_TYPE_NONE 无信号 PHONE_TYPE_GSM GSM信号 PHONE_TYPE_CDMA
		 * CDMA信号
		 */
		tm.getPhoneType();// int

		/**
		 * Returns the ISO country code equivalent for the SIM provider's
		 * country code. 获取ISO国家码,相当于提供SIM卡的国家码。
		 */
		tm.getSimCountryIso();// String

		/**
		 * Returns the MCC+MNC (mobile country code + mobile network code) of
		 * the provider of the SIM. 5 or 6 decimal digits.
		 * 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字. SIM卡的状态必须是
		 * SIM_STATE_READY(使用getSimState()判断).
		 */
		tm.getSimOperator();// String

		/**
		 * 服务商名称: 例如:中国移动、联通 SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
		 */
		tm.getSimOperatorName();// String

		/**
		 * SIM卡的序列号: 需要权限:READ_PHONE_STATE
		 */
		tm.getSimSerialNumber();// String

		/**
		 * SIM的状态信息: SIM_STATE_UNKNOWN 未知状态 0 SIM_STATE_ABSENT 没插卡 1
		 * SIM_STATE_PIN_REQUIRED 锁定状态,需要用户的PIN码解锁 2 SIM_STATE_PUK_REQUIRED
		 * 锁定状态,需要用户的PUK码解锁 3 SIM_STATE_NETWORK_LOCKED 锁定状态,需要网络的PIN码解锁 4
		 * SIM_STATE_READY 就绪状态 5
		 */
		tm.getSimState();// int

		/**
		 * 唯一的用户ID: 例如:IMSI(国际移动用户识别码) for a GSM phone. 需要权限:READ_PHONE_STATE
		 */
		tm.getSubscriberId();// String

		/**
		 * 取得和语音邮件相关的标签,即为识别符 需要权限:READ_PHONE_STATE
		 */
		tm.getVoiceMailAlphaTag();// String

		/**
		 * 获取语音邮件号码: 需要权限:READ_PHONE_STATE
		 */
		tm.getVoiceMailNumber();// String

		/**
		 * ICC卡是否存在
		 */
		tm.hasIccCard();// boolean

		/**
		 * 是否漫游: (在GSM用途下)
		 */
		tm.isNetworkRoaming();//

	}
}

 

分享到:
评论

相关推荐

    Android中TelephonyManager类的用法案例详解

    在Android开发中,TelephonyManager类是用于获取设备电话功能相关信息的重要工具。它提供了一系列方法,可以帮助开发者获取手机硬件信息,如IMEI、SIM卡信息、网络运营商等。本篇文章将详细讲解如何使用...

    android系统java反射机制详解

    在Android系统中,Java反射机制同样被广泛应用,尤其是在动态加载类、处理不确定类型的对象、调用私有方法或者访问私有变量等方面。下面将深入探讨Java反射机制的概念、原理及在Android开发中的应用。 一、Java反射...

    Android TelephonyManager详解及实现代码

    JAVA的反射机制,探秘TelephonyManager在Framework里包含却在SDK隐藏的... 调用TelephonyManager的隐藏API是先参考Framework的/base/telephony/java/com/android/internal/telephony/ITelephony.aidl,然后自己实现一

    Android手机管理工具类详解

    ion = Integer.parseInt(android.os.Build.VERSION.SDK_INT + "");...这个类还展示了如何与Android系统服务如`PackageManager`、`TelephonyManager`和`WindowManager`进行交互,这些都是Android开发中的核心组件。

    Android开发应用实战详解源代码

    6.5.2 telephonymanager和phonestatelistener 6.5.3 具体实现 6.6 存储卡容量 6.7 来电邮件通知 6.8 内存和存储卡 6.9 实现定时闹钟 6.10 黑名单 6.11 桌面背景图片轮换 6.12 监听发送短信状态 6.13 修改默认开机...

    android中getSystemService详解

    Android 中的 getSystemService 详解 Android 中的 getSystemService 是一个非常重要的 API,它是 Activity 的一个方法,根据传入的 NAME 来取得对应的 Object,然后转换成相应的服务对象。通过 getSystemService,...

    Android网络工具类NetworkUtils详解

    这个方法通常会使用 `TelephonyManager` 类的 `getNetworkOperatorName()` 方法,以获取当前设备所连接的移动网络运营商名称。 7. **获取移动终端类型(getPhoneType)**: `getPhoneType` 方法将返回设备的电话...

    Android系统原理与开发要点详解

    Android系统是全球最广泛使用的移动操作系统之一,其深入理解对于开发者来说至关重要。本文将依据提供的文件标题,逐一解析Android系统的主要组成部分以及开发要点。 首先,01_Android系统概述.pdf可能会涵盖...

    Android6.0编程实现双向通话自动录音功能的方法详解

    "Android6.0编程实现双向通话自动录音功能的方法详解" Android 6.0 编程实现双向通话自动录音功能的方法详解主要介绍了Android 6.0 编程实现双向通话自动录音功能的方法,结合实例形式分析了Android 录音功能的原理...

    Android学习之Service开机启动

    ### Android学习之Service开机启动详解 #### 一、引言 在Android开发中,有时我们需要让应用程序中的某个服务(Service)在设备启动时自动运行,例如进行后台数据同步、监控某些变化等。为了实现这一需求,可以...

    Android系统工具类详解

    Android系统工具类是Android开发中常用的一类辅助方法集合,它们可以帮助开发者更加便捷地处理一些常见的系统级操作。以下是对这些工具类方法的详细解析: 1. 隐藏iPad底部虚拟按键栏 这个方法`closeBottomBar...

    android获取IMEI号

    ### Android获取IMEI号:详解TelephonyManager类与设备识别码 在Android开发中,获取设备的唯一识别码(如IMEI号)是一项常见的需求,主要用于设备标识、数据分析或安全验证等场景。IMEI(International Mobile ...

    疯狂Android讲义第10章源码(Android服务Service_详解)

     10.1.3 绑定本地Service并与之  通信 377  10.1.4 Service的生命周期 381  10.2 跨进程调用Service  (AIDL服务) 382  10.2.1 AIDL服务简介 382  10.2.2 创建AIDL文件 383  10.2.3 将接口暴露给客户端 383...

    android 手机报警系统demo

    Android的TelephonyManager类提供了拨打电话的接口。在报警状态下,Demo会调用此接口,自动拨打预设的紧急联系人电话。需要注意的是,为了用户隐私和安全,此功能在实际应用中可能需要用户的明确授权。 4. **发送...

    Android SDK类库

    - **android.telephony**:TelephonyManager类可以获取到SIM卡的相关信息,比如运营商名称、号码等。而SmsManager则用来发送短信,提供了多种发送方式的选择。 - **android.webkit**:WebViewClient是与WebView组件...

Global site tag (gtag.js) - Google Analytics