【发布时间】:2021-11-15 14:39:19
【问题描述】:
PhoneStateListener的onCallStateChanged将通话状态和被叫号码作为参数:
val telephonyManager =
context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
telephonyManager.listen(
object : PhoneStateListener() {
override fun onCallStateChanged(state: Int, phoneNumber: String) {
super.onCallStateChanged(state, phoneNumber)
}
},
PhoneStateListener.LISTEN_CALL_STATE
)
在listen()和PhoneStateListener被弃用之后,建议的收听电话的方法是通过registerTelephonyCallback(),以Executor和TelephonyCallback作为参数,问题是TelephonyCallback.CallStateListener的onCallStateChanged 只将调用状态作为参数:
telephonyManager.registerTelephonyCallback(
context.mainExecutor,
object : TelephonyCallback(), TelephonyCallback.CallStateListener {
override fun onCallStateChanged(state: Int) {
// WHERE IS PHONE NUMBER?
}
}
)
为了使我的应用程序正常运行,我绝对需要知道被呼叫的电话号码。
有人知道如何使用TelephonyCallback 或至少不使用已弃用的方法来获取它吗?
【问题讨论】:
-
有关于这个话题的消息吗?我也面临同样的问题。
-
是的,我发现了一些东西,我刚刚写了一篇关于它的帖子
标签: android deprecated telephonymanager phone-state-listener