首页 > 代码库 > Android开发之获取手机SIM卡信息
Android开发之获取手机SIM卡信息
TelephonyManager是一个管理手机通话状态、电话网络信息的服务类,该类提供了大量的getXxx(),方法获取电话网络的相关信息。
TelephonyManager类概述:
可用于访问有关设备上的电话服务信息。应用程序可以使用这个类的方法来确定电话服务和状态,以及访问某些类型的用户信息。应用程序还可以注册一个侦听器以接收的电话状态变化通知。
你不能直接实例化这个类;相反,你可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法还获取初始化TelephonyManager实例。
需要注意的是访问某些电话信息permission-protected。。你的应用程序应该获得访问手机位置和状态的的一些权限。
TelephonyManager类提供的主要的方法:
Public Methods | |
int | getCallState() 返回一个常数,表示设备上的呼叫状态 |
CellLocation | getCellLocation() 返回设备的当前位置。 |
int | getDataActivity() 返回一个常数,表示活动的数据连接的类型。 |
int | getDataState() 返回一个常数表示当前数据连接状态 |
String | getDeviceId() 返回唯一的设备ID,例如,IMEI GSM和MEID CDMA手机。 |
String | getDeviceSoftwareVersion() 返回设备的软件版本号,例如,的IMEI / SV GSM手机。 |
String | getLine1Number() 返回1号线的电话号码,例如,MSISDN用于GSM电话。 |
List<NeighboringCellInfo> | getNeighboringCellInfo() 返回设备的相邻小区信息。 |
String | getNetworkCountryIso() 返回注册的网络运营商的国家代码 |
String | getNetworkOperator() 返回的MCC +跨国公司的注册网络运营商 |
String | getNetworkOperatorName() 返回注册的网络运营商的名字 |
int | getNetworkType() 返回一个常数,表示目前在设备上使用的无线电技术(网络类型)。 |
int | getPhoneType() 返回设备的类型(手机制式)。 |
String | getSimCountryIso() 返回SIM卡运营商的国家代码 |
String | getSimOperator() 返回MCC +跨国公司(移动国家代码+移动网络代码)的提供者的SIM卡。 |
String | getSimOperatorName() 返回服务提供者的名称(SPN)。 |
String | getSimSerialNumber() 返回SIM卡的序列号,如果适用的话。 |
int | getSimState() 返回一个常数表示SIM卡设备的状态。 |
String | getSubscriberId() 返回唯一的用户ID,例如,IMSI为GSM手机。 |
String | getVoiceMailAlphaTag() 检索与语音信箱号码相关的字母标识符。 |
String | getVoiceMailNumber() 返回语音信箱号码。 |
boolean | hasIccCard() |
boolean | isNetworkRoaming() 返回true,如果该设备被认为是漫游当前网络上,支持GSM目的。 |
void | listen(PhoneStateListener listener, int events) 注册一个侦听器对象接收改变指定的电话状态的通知。 |
应用实例:
运行效果图:
TelephonyStatus类:
package com.jph.telephonystatus; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.telephony.TelephonyManager; import android.widget.ListView; import android.widget.SimpleAdapter; /** * Describe:</br> * 获取Sim卡信息 * 本实例通过TelephonyManager类的对象的getXxx() * 方法获取手机Sim卡信息。 * @author jph * Date:2014.07.22 * */ public class TelephonyStatus extends Activity { ListView listShow; //创建一个tManager类的实例 TelephonyManager tManager; //声明一个表示Sim卡状态名的数组 String []statusName=new String[]{}; //声明一个表示Sim卡状态值得集合 ArrayList<String>statusValue=http://www.mamicode.com/new ArrayList();>array.xml <?xml version="1.0" encoding="utf-8"?> <resources> <!-- 声明一个名为statusName的数组 --> <string-array name="statusName"> <item>设备编号</item> <item>手机制式</item> <item>软件版本</item> <item>设备当前位置</item> <item>设备呼叫状态</item> <item>电话号码</item> <item>运营商的国家代码</item> <item>运营商的名称</item> <item>网络类型</item> <item>SPN</item> <item>SIM卡的序列号</item> <item>SIM卡状态</item> </string-array> <!-- 声明一个名为phoneType的数组 --> <string-array name="phoneType"> <item>未知</item> <item>GSM</item> <item>CDMA</item> </string-array> <!-- 声明一个名为simSatus的数组 --> <string-array name="simStatus"> <item>状态未知</item> <item>无SIM卡</item> <item>被PIN加锁</item> <item>被PUK加锁</item> <item>被NetWork PIN加锁</item> <item>已准备好</item> </string-array> </resources>
AndroidManifest.xml<!-- 添加访问手机位置的权限 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <!-- 添加访问手机状态的权限 --> <uses-permission android:name="android.permission.READ_PHONE_STATE"/>关于TelephonyManager其它实际应用可参照:Android开发之监听手机来电Android开发之获取手机SIM卡信息