第一步获取权限
Manifest.permission.READ_PHONE_STATEManifest.permission.ANSWER_PHONE_CALLSManifest.permission.READ_CALL_LOG Manifest.permission.READ_CONTACTS
第二步 注册监听
private var telephonyManager: TelephonyManager? = nullprivate var mPhoneStateListener: PhoneStateListener? = nullprivate fun lisPhone(){telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManagermPhoneStateListener = object :PhoneStateListener() {override fun onCallStateChanged(state: Int, phoneNumber: String?) {super.onCallStateChanged(state, phoneNumber)when (state) {TelephonyManager.CALL_STATE_IDLE -> {Log.e("电话监听", "onCallStateChanged: 挂断${phoneNumber}")}TelephonyManager.CALL_STATE_OFFHOOK -> {Log.i("电话监听", "onCallStateChanged: 接听${phoneNumber}")}TelephonyManager.CALL_STATE_RINGING -> {Log.i("电话监听", "onCallStateChanged: 响铃${phoneNumber}")}}}}telephonyManager!!.listen(mPhoneStateListener!!,PhoneStateListener.LISTEN_CALL_STATE)}
结尾 取消监听
private fun cancelPhoneStateListener(){if (telephonyManager != null && telephonyManager != null) {telephonyManager!!.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);}}