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

TelephonyManager类详解

 
阅读更多
  1. 1.加入权限  
  2.   
  3. 在manifest.xml文件中要添加 <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
  4.   
  5. 2.代码   
  6.   
  7.     /**    
  8.     *    
  9.     * 
  10.     *创建日期 2010-4-29 下午05:02:47    
  11.     *    
  12.     */      
  13.     package net.sunniwell.app;       
  14.     import android.app.Activity;       
  15.     import android.os.Bundle;       
  16.     import android.telephony.CellLocation;       
  17.     import android.telephony.PhoneStateListener;       
  18.     import android.telephony.TelephonyManager;       
  19.     public class TelManager extends Activity {       
  20.           
  21.     @Override      
  22.     protected void onCreate(Bundle savedInstanceState) {       
  23.       super.onCreate(savedInstanceState);       
  24.       TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);       
  25.              
  26.       /*    
  27.        * 电话状态:    
  28.        * 1.tm.CALL_STATE_IDLE=0          无活动    
  29.        * 2.tm.CALL_STATE_RINGING=1  响铃    
  30.        * 3.tm.CALL_STATE_OFFHOOK=2  摘机    
  31.        */      
  32.       tm.getCallState();//int       
  33.              
  34.       /*    
  35.        * 电话方位:    
  36.        *     
  37.        */      
  38.       tm.getCellLocation();//CellLocation       
  39.              
  40.       /*    
  41.        * 唯一的设备ID:    
  42.        * GSM手机的 IMEI 和 CDMA手机的 MEID.     
  43.        * Return null if device ID is not available.    
  44.        */      
  45.       tm.getDeviceId();//String       
  46.              
  47.       /*    
  48.        * 设备的软件版本号:    
  49.        * 例如:the IMEI/SV(software version) for GSM phones.    
  50.        * Return null if the software version is not available.     
  51.        */      
  52.       tm.getDeviceSoftwareVersion();//String       
  53.              
  54.       /*    
  55.        * 手机号:    
  56.        * GSM手机的 MSISDN.    
  57.        * Return null if it is unavailable.     
  58.        */      
  59.       tm.getLine1Number();//String       
  60.              
  61.       /*    
  62.        * 附近的电话的信息:    
  63.        * 类型:List<NeighboringCellInfo>     
  64.        * 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES    
  65.        */      
  66.       tm.getNeighboringCellInfo();//List<NeighboringCellInfo>       
  67.              
  68.       /*    
  69.        * 获取ISO标准的国家码,即国际长途区号。    
  70.        * 注意:仅当用户已在网络注册后有效。    
  71.        *       在CDMA网络中结果也许不可靠。    
  72.        */      
  73.       tm.getNetworkCountryIso();//String       
  74.              
  75.       /*    
  76.        * MCC+MNC(mobile country code + mobile network code)    
  77.        * 注意:仅当用户已在网络注册时有效。    
  78.        *    在CDMA网络中结果也许不可靠。    
  79.        */      
  80.       tm.getNetworkOperator();//String       
  81.              
  82.       /*    
  83.        * 按照字母次序的current registered operator(当前已注册的用户)的名字    
  84.        * 注意:仅当用户已在网络注册时有效。    
  85.        *    在CDMA网络中结果也许不可靠。    
  86.        */      
  87.       tm.getNetworkOperatorName();//String       
  88.              
  89.       /*    
  90.        * 当前使用的网络类型:    
  91.        * 例如: NETWORK_TYPE_UNKNOWN  网络类型未知  0    
  92.          NETWORK_TYPE_GPRS     GPRS网络  1    
  93.          NETWORK_TYPE_EDGE     EDGE网络  2    
  94.          NETWORK_TYPE_UMTS     UMTS网络  3    
  95.          NETWORK_TYPE_HSDPA    HSDPA网络  8     
  96.          NETWORK_TYPE_HSUPA    HSUPA网络  9    
  97.          NETWORK_TYPE_HSPA     HSPA网络  10    
  98.          NETWORK_TYPE_CDMA     CDMA网络,IS95A 或 IS95B.  4    
  99.          NETWORK_TYPE_EVDO_0   EVDO网络, revision 0.  5    
  100.          NETWORK_TYPE_EVDO_A   EVDO网络, revision A.  6    
  101.          NETWORK_TYPE_1xRTT    1xRTT网络  7    
  102.        */      
  103.       tm.getNetworkType();//int       
  104.              
  105.       /*    
  106.        * 手机类型:    
  107.        * 例如: PHONE_TYPE_NONE  无信号    
  108.          PHONE_TYPE_GSM   GSM信号    
  109.          PHONE_TYPE_CDMA  CDMA信号    
  110.        */      
  111.       tm.getPhoneType();//int       
  112.              
  113.       /*    
  114.        * Returns the ISO country code equivalent for the SIM provider's country code.    
  115.        * 获取ISO国家码,相当于提供SIM卡的国家码。    
  116.        *     
  117.        */      
  118.       tm.getSimCountryIso();//String       
  119.              
  120.       /*    
  121.        * Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.    
  122.        * 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.    
  123.        * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).    
  124.        */      
  125.       tm.getSimOperator();//String       
  126.              
  127.       /*    
  128.        * 服务商名称:    
  129.        * 例如:中国移动、联通    
  130.        * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).    
  131.        */      
  132.       tm.getSimOperatorName();//String       
  133.              
  134.       /*    
  135.        * SIM卡的序列号:    
  136.        * 需要权限:READ_PHONE_STATE    
  137.        */      
  138.       tm.getSimSerialNumber();//String       
  139.              
  140.       /*    
  141.        * SIM的状态信息:    
  142.        *  SIM_STATE_UNKNOWN          未知状态 0    
  143.        SIM_STATE_ABSENT           没插卡 1    
  144.        SIM_STATE_PIN_REQUIRED     锁定状态,需要用户的PIN码解锁 2    
  145.        SIM_STATE_PUK_REQUIRED     锁定状态,需要用户的PUK码解锁 3    
  146.        SIM_STATE_NETWORK_LOCKED   锁定状态,需要网络的PIN码解锁 4    
  147.        SIM_STATE_READY            就绪状态 5    
  148.        */      
  149.       tm.getSimState();//int       
  150.              
  151.       /*    
  152.        * 唯一的用户ID:    
  153.        * 例如:IMSI(国际移动用户识别码) for a GSM phone.    
  154.        * 需要权限:READ_PHONE_STATE    
  155.        */      
  156.       tm.getSubscriberId();//String       
  157.              
  158.       /*    
  159.        * 取得和语音邮件相关的标签,即为识别符    
  160.        * 需要权限:READ_PHONE_STATE    
  161.        */      
  162.       tm.getVoiceMailAlphaTag();//String       
  163.              
  164.       /*    
  165.        * 获取语音邮件号码:    
  166.        * 需要权限:READ_PHONE_STATE    
  167.        */      
  168.       tm.getVoiceMailNumber();//String       
  169.              
  170.       /*    
  171.        * ICC卡是否存在    
  172.        */      
  173.       tm.hasIccCard();//boolean       
  174.              
  175.       /*    
  176.        * 是否漫游:    
  177.        * (在GSM用途下)    
  178.        */      
  179.       tm.isNetworkRoaming();//       
  180.              
  181.              
  182.              
  183.     }       
  184.           
  185.           
  186.     } 
分享到:
评论

相关推荐

    Android之TelephonyManager类的方法详解

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

    Android中TelephonyManager类的用法案例详解

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

    android获取IMEI号

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

    Android TelephonyManager详解及实现代码

    在Android开发中,`TelephonyManager`是一个非常重要的类,它用于获取设备的电话相关信息,如SIM卡状态、运营商信息、手机类型等。然而,它的功能远不止这些,通过使用Java的反射机制,我们还可以访问到一些隐藏的...

    Android手机管理工具类详解

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

    android系统java反射机制详解

    Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、接口、对象等的内部信息。在Android系统中,Java反射机制同样被广泛应用,尤其是在动态加载类、处理不确定类型的对象、调用私有方法...

    Android系统工具类详解

    `TelephonyManager`服务用于获取IMEI。 8. 获取系统当前语言 `getSystemLanguage()`方法虽然在提供的代码片段中未完成,但通常会使用`Locale.getDefault().getLanguage()`来获取设备当前设置的语言,这对于实现多...

    android中getSystemService详解

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

    Android网络工具类NetworkUtils详解

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

    应用源码之TelephonyManagerSample.zip

    TelephonyManager是Android SDK中的一个类,它允许应用程序获取设备的电话相关信息,如SIM状态、运营商信息、手机类型等。通过调用其提供的方法,开发者可以实现电话功能的多样化操作,例如监听来电、短信、网络状态...

    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 修改默认开机...

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

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

    Android 手机归属地查询程序.rar

    2. **获取IMSI**:在代码中,通过TelephonyManager类的getSubscriberId()方法获取IMSI: ```java TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String...

    Android 4.0系统打电话和接电话系统流程时序图详解

    电话应用会调用TelephonyManager服务,这是一个核心服务,负责处理所有与电话相关的操作。TelephonyManager通过请求Intent启动通话流程,这个Intent携带了待拨打的电话号码。 接下来,系统的电话服务(Telephony ...

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

    可能涉及TelephonyManager、SmsManager API,以及如何处理蜂窝数据和GPS定位。 总的来说,这些文件提供了Android系统开发的全面视图,从底层硬件交互到上层应用设计,对于想要深入了解Android系统并进行应用开发的...

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

     (TelephonyManager) 393  10.4 短信管理器(SmsManager) 400  10.5 音频管理器  (AudioManager) 404  10.5.1 AudioManager简介 404  10.6 振动器(Vibrator) 407  10.6.1 Vibrator简介 407  10.6.2 ...

Global site tag (gtag.js) - Google Analytics