gpt4 book ai didi

android - CallScreeningService - 几秒钟后断开调用 - Android 10

转载 作者:行者123 更新时间:2023-12-05 03:51:31 25 4
gpt4 key购买 nike

尝试在 Android 10 上响铃几秒后断开来电。使用 CallScreeningService 过滤来电。

@RequiresApi(Build.VERSION_CODES.N)
class MyCallScreeningService :
CallScreeningService() {


@RequiresApi(Build.VERSION_CODES.Q)
override fun onScreenCall(details: Call.Details?) {
if (details?.callDirection == Call.Details.DIRECTION_INCOMING) {
val phoneNumber = details.handle.schemeSpecificPart
val blockedList = Paper.book().read(Constants.FIELD_BLOCKED_LIST, ArrayList<String>())
if (blockedList.contains(phoneNumber)) {
disconnectCall(details, phoneNumber)
}
}
}

private fun disconnectCall(details: Call.Details, phoneNumber: String) {
Handler().postDelayed({
respondToCall(details, buildResponse())
}, 3000L)
}

private fun buildResponse(): CallResponse {
return CallResponse.Builder()
.setRejectCall(true)
.setDisallowCall(true)
.setSkipNotification(true)
.setSkipCallLog(true)
.build()
}
}

问题是,如果我将 handler 时间设置得太低,调用就会断开,而接收方不会响铃。虽然,如果我将它设置得更高,比如 6 秒,则会显示响铃通知,但断开连接不起作用。

最佳答案

CallScreeningService 在电话响铃前执行onScreenCall 方法。

您有 5 秒的时间来决定是允许电话响铃还是阻止来电。如果您未在 5 秒内返回 CallResponse,Telephony API 将忽略对您的 onScreenCall 的调用并让电话响铃。

使用 CallScreeningService 无法在几秒钟的铃声后阻止电话调用。

关于android - CallScreeningService - 几秒钟后断开调用 - Android 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62850403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com