Android中TelephonyManager类的方法实例分析
程序员文章站
2023-10-19 10:49:41
本文实例讲述了android中telephonymanager类的方法。分享给大家供大家参考。具体如下:
telephonymanager类主要提供了一系列用于访问与手机...
本文实例讲述了android中telephonymanager类的方法。分享给大家供大家参考。具体如下:
telephonymanager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机sim的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。
telephonymanager类的对象可以通过context.getsystemservice(context.telephony_service)方法来获得,需要注意的是有些通讯信息的获取对应用程序的权限有一定的限制,在开发的时候需要为其添加相应的权限。
以下列出telephonymanager类所有方法及说明:
package com.ljq.activity; import java.util.list; import android.app.activity; import android.content.context; import android.os.bundle; import android.telephony.celllocation; import android.telephony.neighboringcellinfo; import android.telephony.telephonymanager; public class telephonymanageractivity extends activity { @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); telephonymanager tm = (telephonymanager) getsystemservice(context.telephony_service); /** * 返回电话状态 * * call_state_idle 无任何状态时 * call_state_offhook 接起电话时 * call_state_ringing 电话进来时 */ tm.getcallstate(); //返回当前移动终端的位置 celllocation location=tm.getcelllocation(); //请求位置更新,如果更新将产生广播,接收对象为注册listen_cell_location的对象,需要的permission名称为access_coarse_location。 location.requestlocationupdate(); /** * 获取数据活动状态 * * data_activity_in 数据连接状态:活动,正在接受数据 * data_activity_out 数据连接状态:活动,正在发送数据 * data_activity_inout 数据连接状态:活动,正在接受和发送数据 * data_activity_none 数据连接状态:活动,但无数据发送和接受 */ tm.getdataactivity(); /** * 获取数据连接状态 * * data_connected 数据连接状态:已连接 * data_connecting 数据连接状态:正在连接 * data_disconnected 数据连接状态:断开 * data_suspended 数据连接状态:暂停 */ tm.getdatastate(); /** * 返回当前移动终端的唯一标识 * * 如果是gsm网络,返回imei;如果是cdma网络,返回meid */ tm.getdeviceid(); //返回移动终端的软件版本,例如:gsm手机的imei/sv码。 tm.getdevicesoftwareversion(); //返回手机号码,对于gsm网络来说即msisdn tm.getline1number(); //返回当前移动终端附近移动终端的信息 list<neighboringcellinfo> infos=tm.getneighboringcellinfo(); for(neighboringcellinfo info:infos){ //获取邻居小区号 int cid=info.getcid(); //获取邻居小区lac,lac: 位置区域码。为了确定移动台的位置,每个gsm/plmn的覆盖区都被划分成许多位置区,lac则用于标识不同的位置区。 info.getlac(); info.getnetworktype(); info.getpsc(); //获取邻居小区信号强度 info.getrssi(); } //返回iso标准的国家码,即国际长途区号 tm.getnetworkcountryiso(); //返回mcc+mnc代码 (sim卡运营商国家代码和运营商网络代码)(imsi) tm.getnetworkoperator(); //返回移动网络运营商的名字(spn) tm.getnetworkoperatorname(); /** * 获取网络类型 * * network_type_cdma 网络类型为cdma * network_type_edge 网络类型为edge * network_type_evdo_0 网络类型为evdo0 * network_type_evdo_a 网络类型为evdoa * network_type_gprs 网络类型为gprs * network_type_hsdpa 网络类型为hsdpa * network_type_hspa 网络类型为hspa * network_type_hsupa 网络类型为hsupa * network_type_umts 网络类型为umts * * 在中国,联通的3g为umts或hsdpa,移动和联通的2g为gprs或egde,电信的2g为cdma,电信的3g为evdo */ tm.getnetworktype(); /** * 返回移动终端的类型 * * phone_type_cdma 手机制式为cdma,电信 * phone_type_gsm 手机制式为gsm,移动和联通 * phone_type_none 手机制式未知 */ tm.getphonetype(); //返回sim卡提供商的国家代码 tm.getsimcountryiso(); //返回mcc+mnc代码 (sim卡运营商国家代码和运营商网络代码)(imsi) tm.getsimoperator(); tm.getsimoperatorname(); //返回sim卡的序列号(imei) tm.getsimserialnumber(); /** * 返回移动终端 * * sim_state_absent sim卡未找到 * sim_state_network_locked sim卡网络被锁定,需要network pin解锁 * sim_state_pin_required sim卡pin被锁定,需要user pin解锁 * sim_state_puk_required sim卡puk被锁定,需要user puk解锁 * sim_state_ready sim卡可用 * sim_state_unknown sim卡未知 */ tm.getsimstate(); //返回用户唯一标识,比如gsm网络的imsi编号 tm.getsubscriberid(); //获取语音信箱号码关联的字母标识。 tm.getvoicemailalphatag(); //返回语音邮件号码 tm.getvoicemailnumber(); tm.hasicccard(); //返回手机是否处于漫游状态 tm.isnetworkroaming(); // tm.listen(phonestatelistener listener, int events) ; //解释: //imsi是国际移动用户识别码的简称(international mobile subscriber identity) //imsi共有15位,其结构如下: //mcc+mnc+min //mcc:mobile country code,移动国家码,共3位,中国为460; //mnc:mobile networkcode,移动网络码,共2位 //在中国,移动的代码为电00和02,联通的代码为01,电信的代码为03 //合起来就是(也是android手机中apn配置文件中的代码): //中国移动:46000 46002 //中国联通:46001 //中国电信:46003 //举例,一个典型的imsi号码为460030912121001 //imei是international mobile equipment identity (国际移动设备标识)的简称 //imei由15位数字组成的”电子串号”,它与每台手机一一对应,而且该码是全世界唯一的 //其组成为: //1. 前6位数(tac)是”型号核准号码”,一般代表机型 //2. 接着的2位数(fac)是”最后装配号”,一般代表产地 //3. 之后的6位数(snr)是”串号”,一般代表生产顺序号 //4. 最后1位数(sp)通常是”0″,为检验码,目前暂备用 } }
希望本文所述对大家的android程序设计有所帮助。