Если на телефон поступает 3 звонка менее минуты, то есть подозрение на атаку, поэтому Я хочу мгновенно заблокировать входящие вызовы на устройстве. Но мой код не работает (конечно, иначе я бы не стал хорошим программистом, верно?).
Если не считать шуток, я уже спрашиваю все разрешения о состоянии телефона.
Пожалуйста, помогите мне реализовать эту функцию. (это основная цель):
Код: Выделить всё
// Check for high call volume and notify user
if (callTimestamps.size > 2) {
"High call volume detected".logEvent(context)
notifyUser(context)
// Block the call if call blocking is enabled
if (isCallBlockingEnabled && Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
val telecomManager = context.getSystemService(Context.TELECOM_SERVICE) as? TelecomManager
if (telecomManager != null && ContextCompat.checkSelfPermission(context, Manifest.permission.ANSWER_PHONE_CALLS) == PackageManager.PERMISSION_GRANTED) {
telecomManager.endCall()
}
}
}
Код: Выделить всё
Чего я ожидал:
На виртуальном И физическом телефоне (в логарифме нет проблем с версией API):
Я делаю 3 звонка жертвам в течение 30 секунд, получаю уведомление о потенциальной атаке (что означает, что мое условие выполнено), но продолжаю после этого принимать звонки....
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: я не знаю, важно ли это, так как я совсем новичок в Kotlin, но я настроил функцию «отключить блокировку вызовов» в уведомление
Подробнее здесь: https://stackoverflow.com/questions/791 ... otlin-2024
Мобильная версия