android开发笔记之多媒体—TelephonyManager(电话管理器)

这篇博客详细介绍了在Android开发中如何使用TelephonyManager来获取电话管理器对象,并通过getSystemService方法来获取相关信息。重点讲解了listen方法用于监听通话状态,特别是PhoneStateListener.LISTEN_CALL_STATE常量的使用,以及onCallStateChanged方法在监听到通话状态变化时的回调。文章还提醒开发者需要申请读取电话状态的权限。示例代码展示了具体的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电话管理器(TelephonyManager)

   电话管理器是一个管理手机通话状态,电话网络信息的服务类。
   该类提供了大量的getXxx()方法来获取电话网络的相关信息

获取TelephonyManager对象的方式:

context.getSystemService(Context.TELEPHONY_SERVICE);

接下来就可以获取相关信息:

   getDeviceId():获取设备编号

   getDeviceSoftwareVersion():获取系统平台的版本

   getNetworkOperator():获取网络运营商代号

   getNetworkOperatorName():获取网络运营商名字

   getPhoneType():获取手机网络类型

   getCellLocation():获取设备所在位置

   getSimCountryIso():获取SIM卡的国别

   getSimSerialNumber():获取SIM卡序列号

   getSimState():获取SIM卡的状态

   getLine1Number():获取本地号码(联通和电信卡是可以的)  

此外还提供了listen方法来监听通话状态,该方法可以监听手机来电信息。
manager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
onCallStateChanged(int state,String incomingNumber)方法

    state:是电话的状态,取值有

    TelephonyManager.CALL_STATE_IDLE 挂电话和空闲状态

    TelephonyManager.CALL_STATE_OFFHOOK  摘机状态   

    TelephonyManager.CALL_STATE_RINGING 来电状态:电话铃声响起的那段时间或正在通话又来新电,新来电话不得不等待的那段时间。

incomingNumber:是来电电话号码

注意:
需要加上读取电话状态的权限

 <uses-permission android:name="android.permission.READ_PHONE_S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值