TelephonyManager这个类很有用,可以得到很多关于手机和Sim卡的信息。
直接上注释后的代码,请享用

package net.sunniwell.app;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.CellLocation;
import android.telephony.PhoneStateListener;
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(); //
 
}
}

TelephonyManager类:Android手机及Sim卡状态的获取的更多相关文章

  1. Android本机号码及Sim卡状态的获取

    SIM卡存储的数据可分为四类:第一类是固定存放的数据.这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI).鉴权密钥(KI).鉴权和加密算法等等.第二类是暂时存放的有关 ...

  2. android中判断sim卡状态和读取联系人资料的方法

    在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. Pho ...

  3. 十九、android中判断sim卡状态和读取联系人资料的方法

    在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. Pho ...

  4. Android ExpandableListView使用+获取SIM卡状态信息

    ExpandableListView 是一个可以实现下拉列表的控件,大家可能都用过QQ,QQ中的好友列表就是用ExpandableListView实现的,不过它是自定义的适配器.本篇 博客除了要介绍E ...

  5. Android记录3--ExpandableListView使用+获取SIM卡状态信息

    Android记录3--ExpandableListView使用+获取SIM卡状态信息 2013年8月9日Android记录 ExpandableListView是一个可以实现下拉列表的控件,大家可能 ...

  6. MTK Android 读取SIM卡参数,获取sim卡运营商信息

    android 获取sim卡运营商信息(转)   TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TE ...

  7. Jasper:用户指南 / 设备 / 生命周期管理 / SIM 卡状态

    ylbtech-Jasper:用户指南 / 设备 / 生命周期管理 / SIM 卡状态 1.返回顶部 1. SIM 卡状态 每个设备都有一个状态,决定了它能否在网络上建立数据连接,并且会影响设备是否计 ...

  8. 获取及管理Android 手机运营商及状态

    主要类 TelephonyManager: telephonyManager.getCellLocation();//获得服务区 telephonyManager.getCellId();//获得服务 ...

  9. Android手机外置SD卡(TF卡)的获取方法

    Android手机上的外置SD卡,起初的时候,即在Android出世的前几年,那时手机的存储是十分有限的,不像现在到处可见16G.32G和64G的存储,因而那时候的手机有的厂商允许插入外置的SD卡,此 ...

随机推荐

  1. D3D9 GPU Hacks (转载)

    D3D9 GPU Hacks I’ve been trying to catch up what hacks GPU vendors have exposed in Direct3D9, and tu ...

  2. git ignore不生效删除缓冲

    在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件).这个文件每一行保存了一个匹配的规则例如: 1 2 3 ...

  3. duplicate database的时候,rman连接 auxiliary database的后状态不正确

    duplicate database的时候,rman连接 auxiliary database的后状态不正确 auxiliary database 已经被startup nomount,但是rman连 ...

  4. Windows平台注册mysql服务

    将mysql 注册为服务: ->mysqld --install 卸载服务: ->mysqld --remove 命令行启动mysql: ->net start mysql 命令行关 ...

  5. PostgreSQL Replication之第十章 配置Slony(3)

    10.3 复制您的第一个数据库 这个小小的介绍之后,我们可以继续前进并复制我们的第一个数据库.要做到这一点,我们可以在一个数据库实例上创建两个数据库.我们想简单地在这两个数据库之间进行复制. [ 您在 ...

  6. G面经prepare: Sort String Based On Another

    Given a sorting order string, sort the input string based on the given sorting order string. Ex sort ...

  7. csuoj 1111: 三家人

    acm.csu.edu.cn/OnlineJudge/problem.php?id=1111 1111: 三家人 Time Limit: 1 Sec  Memory Limit: 128 MBSubm ...

  8. C#: 启动画面设计

    Windows Form经常会在启动主界面的时候预先有启动画面,这也是因为用户体验的需要,用户知道已经启动application,而不是在load resource的时候等待.因此这里不能用单线程的思 ...

  9. CCF真题之最优灌溉

    201412-4 问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来引水灌溉. 为了灌溉,雷雷需要建立一些水渠,以连接水井和麦田,雷雷也可以利 ...

  10. Android webview实现上传图片的效果(图片压缩)

    mainactivity代码 package com.bwie.webviewupload; import java.io.ByteArrayInputStream; import java.io.B ...