TelephonyManager解析
来源:互联网 发布:python特性 编辑:程序博客网 时间:2024/06/06 03:58
java.lang.Object
↳ android.telephony.TelephonyManager
- 类概述
提供对设备上的电话服务的信息的访问。应用程序可以使用这个类中的方法来确定电话服务和状态,以及访问某些类型的用户信息。应用程序还可以注册一个侦听器接收电话状态更改的通知。
不能直接实例化这个对象,而要通过Context.getSystemService(Context.TELEPHONY_SERVICE)来实例化它。
请注意,访问一些电话信息是权限保护的。您的应用程序无法访问受保护的信息,除非它有在其清单文件中声明的适当权限。在权限适用的情况下,它们会在您访问受保护的信息的方法中被指出。
package com.mystudy.kibi.networktype;import android.annotation.TargetApi;import android.content.Context;import android.os.Build;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.telephony.CellInfo;import android.telephony.CellLocation;import android.telephony.TelephonyManager;import android.util.Log;import java.util.List;public class MainActivity extends AppCompatActivity { @TargetApi(Build.VERSION_CODES.M) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); /** * 在调用getAllCellInfo()方法时需要添加 ACCESS_COARSE_LOCATION 权限 */ List<CellInfo> cellInfos = telephonyManager.getAllCellInfo(); /** * 获取电话状态 * 对应返回的常量: * TelephonyManager.CALL_STATE_IDLE 没有活动 * TelephonyManager.CALL_STATE_OFFHOOK 摘机状态(电话机拿起听筒或按免提,此时的状态就是摘机状态) * TelephonyManager.CALL_STATE_RINGING 来电状态 */ telephonyManager.getCallState(); /** * 获取设备的当前位置。 * 需要添加权限:ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION. */ CellLocation cellLocation = telephonyManager.getCellLocation(); /** * 获取手机号码 * 需要加 READ_PHONE_STATE 权限 */ String line1Number = telephonyManager.getLine1Number(); Log.e("line1Number",line1Number); /** * 获取数据活动状态 * 0: DATA_ACTIVITY_NON 数据连接状态:活动,但无数据发送和接受 * 1: DATA_ACTIVITY_IN 数据连接状态:活动,正在接受数据 * 2: DATA_ACTIVITY_OUT 数据连接状态:活动,正在发送数据 * 3: DATA_ACTIVITY_INOUT 数据连接状态:活动,正在接受和发送数据 * 4: DATA_ACTIVITY_DORMANT 睡眠模式 */ int dataActivity = telephonyManager.getDataActivity(); Log.e("dataActivity",""+dataActivity); //0 /** * 获取数据连接状态 * 0: DATA_DISCONNECTED 数据连接状态:断开 * 1: DATA_CONNECTING 数据连接状态:正在连接 * 2: DATA_CONNECTED 数据连接状态:已连接 * 3: DATA_SUSPENDED 数据连接状态:暂停 */ int dataState = telephonyManager.getDataState(); Log.e("dataState",""+dataState); //0(连接了WIFI) /** * 返回当前移动终端的唯一标识 * 如果是GSM网络,返回IMEI;如果是CDMA网络,返回MEID */ String deviceId = telephonyManager.getDeviceId(); Log.e("deviceId",deviceId); //868666020520895 /** * 返回移动终端的软件版本,例如:GSM手机的IMEI/SV码。 */ String deviceSoftwareVersion = telephonyManager.getDeviceSoftwareVersion(); Log.e("deviceSoftwareVersion",deviceSoftwareVersion); //78 /** * 返回一个GSM手机的一组标识符. */ String groupIdLevel1 = telephonyManager.getGroupIdLevel1(); Log.e("groupIdLevel1",groupIdLevel1); //ffffffff /** * 获取短信代理商的URL */ String mmsUAProfUrl = telephonyManager.getMmsUAProfUrl(); Log.e("mmsUAProfUrl",mmsUAProfUrl); // http://www.google.com/oha/rdf/ua-profile-kila.xml /** * 获取短信代理商 */ String mmsUserAgent = telephonyManager.getMmsUserAgent(); Log.e("mmsUserAgent",mmsUserAgent); //Android-Mms/0.1 /** * 获取ISO标准的国家码 */ String networkCountryIso = telephonyManager.getNetworkCountryIso(); Log.e("networkCountryIso",networkCountryIso); //cn /** * MCC+MNC代码 (SIM卡运营商国家代码和运营商网络代码)(IMSI) */ String networkOperator = telephonyManager.getNetworkOperator(); Log.e("networkOperator",networkOperator); //46000 /** * 获取移动网络运营商的名字 */ String networkOperatorName = telephonyManager.getNetworkOperatorName(); Log.e("networkOperatorName",networkOperatorName); //中国移动 /** * 获取MCC+MNC代码 (SIM卡运营商国家代码和运营商网络代码)(IMSI) */ String simOperator = telephonyManager.getSimOperator(); Log.e("simOperator",simOperator); //46002 /** * 获取SIM卡运营商的名称 */ String simOperatorName = telephonyManager.getSimOperatorName(); Log.e("simOperatorName",simOperatorName); //中国移动 /** * 获取SIM卡运营商的国家代码 */ String simCountryIso = telephonyManager.getSimCountryIso(); Log.e("simCountryIso",simCountryIso); //cn /** * 在可应用的情况下返回SIM卡的序号 */ String simSerialNumber = telephonyManager.getSimSerialNumber(); Log.e("simSerialNumber",simSerialNumber); //898600000913f9060263 /** * 返回例如独特的用户ID,一个GSM手机的IMSI。 */ String subscriberId = telephonyManager.getSubscriberId(); Log.e("subscriberId",subscriberId); //460029019493057 //获取语音信箱的检索字母标识符 String voiceMailAlphaTag = telephonyManager.getVoiceMailAlphaTag(); Log.e("voiceMailAlphaTag",voiceMailAlphaTag); //语音信箱 /** * 获取语音邮件号码 没有语音邮箱功能 返回为null */// String voiceMailNumber = telephonyManager.getVoiceMailNumber();// Log.e("voiceMailNumber",voiceMailNumber); /** * 获取网络类型 * NETWORK_TYPE_UNKNOWN = 0; * NETWORK_TYPE_GPRS = 1; 2G * NETWORK_TYPE_EDGE = 2; 2G * NETWORK_TYPE_UMTS = 3; 3G * NETWORK_TYPE_CDMA = 4; 2G * NETWORK_TYPE_EVDO_0 = 5; 3G * NETWORK_TYPE_EVDO_A = 6; 3G * NETWORK_TYPE_1xRTT = 7; 2G * NETWORK_TYPE_HSDPA = 8; 3G * NETWORK_TYPE_HSUPA = 9; 3G * NETWORK_TYPE_HSPA = 10; 3G * NETWORK_TYPE_IDEN = 11; 2G * NETWORK_TYPE_EVDO_B = 12; 3G * NETWORK_TYPE_LTE = 13; 4G * NETWORK_TYPE_EHRPD = 14; 3G * NETWORK_TYPE_HSPAP = 15; 3G * NETWORK_TYPE_GSM = 16; 2G * NETWORK_TYPE_TD_SCDMA = 17; 3G * NETWORK_TYPE_IWLAN = 18; 4G */ int networkType = telephonyManager.getNetworkType(); Log.e("networkType",""+networkType); //13 /** * 返回1:单卡 * 返回2:双卡 */ int phoneCount = telephonyManager.getPhoneCount(); Log.e("phoneCount",""+phoneCount); //2 /** * 获取电话类型 * 0: PHONE_TYPE_NONE 无类型 * 1: PHONE_TYPE_GSM 全球移动通信系统 * 2: PHONE_TYPE_CDMA 码分多址 * 3: PHONE_TYPE_SIP 跨越因特网的高级电话业务 */ int phoneType = telephonyManager.getPhoneType(); Log.e("phoneType",""+phoneType); //1 /** * 获取SIM卡的状态: * 0: SIM_STATE_UNKNOWN 未知 * 1: SIM_STATE_ABSENT 没有可用的卡 * 2: SIM_STATE_PIN_REQUIRED 锁定:需要用户的卡销解锁 * 3: SIM_STATE_PUK_REQUIRED 锁定:要求用户的SIM卡PUK码解锁 * 4: SIM_STATE_NETWORK_LOCKED 锁定:要求网络销解锁 * 5: SIM_STATE_READY 准备完毕 */ int simState = telephonyManager.getSimState(); Log.e("simState",""+simState); //5 }}
0 0
- TelephonyManager解析
- TelephonyManager
- TelephonyManager
- TelephonyManager
- TelephonyManager
- TelephonyManager
- android之TelephonyManager电话相关信息管理类解析
- android TelephonyManager
- android TelephonyManager
- android TelephonyManager
- android TelephonyManager
- TelephonyManager Android
- android TelephonyManager
- 探秘TelephonyManager
- TelephonyManager使用
- telephonymanager详解
- Android TelephonyManager
- 九、TelephonyManager
- a label can only be part of a statement and a declaration is not a statement
- Error:Execution failed for task ':app:processDebugResources'. 的解决办法
- c语言、c++、大数据处理
- 正则表达式测试器
- 考试制度对我们很重要
- TelephonyManager解析
- js版格式化输出时间
- Javascript函数4种调用模式
- Eclipse使用快捷键
- Unity_UGUI知识点思维导图1.0
- iOS开发技巧--利用Xcode提供的模板创建项目
- 暑假书单出炉
- 适配者模式-c++实现
- 扑克牌顺子