Перейти к содержимому

// 4. Request carrier sync (for RCS/VoLTE carriers) val cm = context.getSystemService(CarrierMessagingService::class.java) cm?.notifyBlockedNumbersChanged(subId, listOf(normalized), false) // false = unblock

The SMS/MMS app maintains its own blocked table: content://sms/blocked . This table is not automatically synced with the BlockedNumberProvider on unblock. Google Messages and Samsung Messages use a periodic sync job (run every 6-12 hours). Therefore, unblocking a contact does not immediately unblock SMS delivery.

// 2. Delete from legacy SMS block table (if using AOSP messaging) context.contentResolver.delete( Uri.parse("content://sms/blocked"), "address = ?", arrayOf(normalized) )

When you unblock a contact, the system resets the local flags but does reset the SafetyNet score. Consequently, the unblocked contact may still be routed to "Spam & Blocked" folder for 2-7 days until the local spam confidence score decays.

// 5. Force a refresh of the in-memory call screening cache CallScreeningService.onBlockedNumbersChanged();