Как влияет на производительность блокировка контакта с 10 000 номеров?

Мы с женой получаем смехотворное количество спам-звонков с одного и того же сервера (один и тот же код города и первые три цифры) и ищем решение. В этом обсуждении Apple описано одно многообещающее решение: создайте файл .vcf для установления контакта, содержащего все 10 000 номеров (-0000 ... -9999) в этом обмене, а затем заблокируйте этот контакт. Ядерный вариант так сказать.

Я читал, что контакт с несколькими сотнями номеров может открываться медленно, порядка нескольких секунд для открытия контакта, содержащего 200 контактов. Но неясно, относится ли «открыть» в этом контексте к открытию его в приложении «Контакты» для просмотра или загрузки в память, чтобы проверить, когда поступает вызов.

У каждого из нас есть iPhone 6, и мы только что обновились до iOS 11 с помощью очистки и восстановления, и до сих пор у нас не было значительного замедления, кроме небольшого (доли секунды) замедления отклика здесь и там.

Каких проблем с производительностью следует ожидать, если мы выберем этот путь?

Редактировать И, в частности, есть ли опасность заблокировать наши телефоны или иным образом сбой, если мы это используем? В приведенной выше ссылке есть некоторое обсуждение того, что приложение контактов больше не открывается.

Другой вариант — создать, скажем, 20 контактов по 500 номеров в каждом, или 100 контактов по 100 номеров в каждом, или что-то в этом роде. Но я не знаю, есть ли больший удар по производительности, если разбить его таким образом, чем если бы они были все в одном.

Почему ядерный вариант? Мы переехали из этого места десять лет назад, но сохранили номера для удобства, мы не получаем никаких звонков от так называемых «соседей», и я бы предпочел не использовать приложение для блокировки звонков из соображений конфиденциальности, поэтому это кажется идеальным решением. (уступает только уничтожению спамеров с орбиты)

Редактировать 2 В настоящее время я экспериментирую с созданием контактов вручную с 500 номерами на контакт, всего 20 контактов. После настройки электронной таблицы потребовалось всего несколько минут, чтобы сгенерировать и импортировать четыре контакта с 2000 номеров, включая отправку контактов по электронной почте на мой телефон и их импорт туда.

Решение Я помечаю ответ Мэтта как решение, потому что он указал мне направление приложения WideProtect. Установил пару дней назад и пока звонков не было.

Первоначально я избегал установки приложения из соображений конфиденциальности, но после прочтения API CallKit меня убедили попробовать. Приложению требуется доступ к вашим контактам, если вы хотите разрешить номера из ваших контактов через блокировку (что кажется противоположным тому, что говорит API CallKit...), но я обошел это, заблокировав все диапазоны, кроме диапазона номера моей жены. in. Например, если номер моей жены 123-555-3859, я бы заблокировал 123-555-0XXX, 123-555-1XXX, 123-555-2XXX, 123-555-4XXX и т. д. Пропустив 3XXX. Это дает только 10% шанс, что мошенники выберут диапазон, который включает номер моей жены, так что это приемлемый компромисс для меня И это позволяет избежать предоставления WideProtect доступа к моему списку контактов. Если станет невмоготу, могу заблокировать 123-555-30XX.. 123-555-37XX и 123-555-39XX дают только 1% шанс, что они случайным образом выберут диапазон. Так что это отлично работает для меня и сохраняет конфиденциальность.

Большое спасибо Мэтту за то, что указал мне на этот путь. Это выглядит как отличное решение.

Я немного задумался, как это вообще проверить. Я предполагаю, что риск может быть двояким: у вас могут возникнуть проблемы с синхронизацией между устройствами, если вы синхронизируете этот большой контакт с iCloud или другим облачным сервисом и вызываете сбой. Тогда есть идея, что код может перебирать телефонные номера, думая, что у вас будет всего несколько или дюжина элементов, и это замедлит работу или приложение?
@bmike Я не эксперт Apple (мы используем Windows, но владеем iPhone), но меня интересуют именно такие вещи. Я, вероятно, собираюсь попробовать, но я пытаюсь выяснить, не испортит ли это мой телефон или что-то в этом роде. Пока я не могу найти никакой информации о лимите # на контакт, только ограничение по размеру. Что, я думаю, я мог бы приписать приблизительную оценку разрешенных # s, но, не зная базового размера контакта, это в лучшем случае дикая догадка.
@bmike Я добавил правку после того, как понял, что не упомянул другой вариант, который рассматривал, - несколько контактов с меньшим количеством чисел в каждом. Моя интуиция подсказывает, что это может быть более безопасный подход, но я не уверен.
У Hiya есть возможность блокировать спам-вызовы на местной бирже. Поскольку он использует CallKit, он не генерирует огромный контакт для управления заблокированными номерами. Вы должны получить хорошую производительность даже на iPhone 5. Текущая база данных неверных чисел сейчас насчитывает около 200 000 записей.

Ответы (2)

Нет никакого влияния на производительность. TrueCaller использует CallKit, метод блокировки спам-звонков, предоставляемый iOS, и за кулисами все они загружаются в один контакт.

Единственная проблема будет заключаться в том, что вы хотите управлять этим контактом вручную, а не использовать приложение, предназначенное для этого. Пролистывание для удаления сотен контактов — это боль!

Во всяком случае, есть приложение под названием WideProtect , которое использует CallKit для блокировки и позволяет вам устанавливать диапазоны номеров для блокировки.

Моя проблема в том, что звонки выглядят так, как будто они мои «соседи» с той же станции, что и я. Итак, если мой номер 123-456-7890, мы получаем звонки в течение всего дня с 123-456-3321 или 123-456-7365 или ... всегда случайные последние 4. (поэтому мне нужно заблокировать 10 000 номеров, а не 1000 я перепутал мой вопрос) Насколько я понимаю, приложения не блокируют эти звонки. Сейчас я экспериментирую с созданием 20 контактов по 500 номеров в каждом. Посмотрим, как пойдет с некоторыми, а затем нарастим.
Я должен добавить, что очевидно, что многие из этих номеров являются законными номерами, но не теми, с которых мне когда-нибудь позвонят . Таким образом, приложение не должно блокировать их, так как кому-то еще могут понадобиться звонки от других людей на той же бирже. Отсюда и необходимость чего-то вроде рассматриваемого мной варианта.
Вы говорите, что они, кажется, с одной и той же биржи. Итак, вы перенаправляете звонки со своего стационарного телефона на свой iPhone?
@Dave отредактировал мой ответ, добавив приложение, которое будет делать именно то, что вы хотите.
Мэтт, нет, последние 10 лет мы живем в другом штате, но сохранили наши старые номера. Мы никогда не будем получать звонки от кого-либо на одной и той же станции, за исключением случаев, когда мы звоним друг другу. Проблема в том, что сейчас мы получаем порядка 10+ звонков в день. Это обычная мошенническая тактика, когда звонящие подделывают код города + обмениваются, чтобы казаться «местными», что делает очевидным для нас, что это мошеннические звонки, поэтому мы их игнорируем. Просто смешно, что так часто звонит телефон. Мы не хотим отключать ВСЕ звонки, только этот обмен.
Matt WideProtect выглядит красиво. Я не знаком с CallKit и не знаю, как он справляется с конфиденциальностью. Из обзора API ( developer.apple.com/documentation/calkit ) видно, что входящие вызовы сначала проверяются iOS по контактам в телефоне, затем по черному списку, а затем по черному списку в WideProtect. Это означало бы, что ему видны только номера, которых нет в моем списке контактов. Это правильно? Почему для этого также требуется привилегия идентификации вызова?
@MattSephton это поддельные номера вызывающих абонентов, мы получаем этот тип спам-звонка, но только на один телефон - это очень раздражает, и, к сожалению, мы не можем просто заблокировать 10 000 номеров.
@Tyson, но вы можете заблокировать 10 тысяч номеров с помощью приложения WideProtect.
Блокировка номеров @Dave через CallKit не требует каких-либо особых привилегий - когда-то это требовалось, но больше не требуется. Вы правы, он получает только те номера, которые не распознаются никакими другими приложениями на вашем телефоне (не только контактами).
@MattSephton прав, но в нашем случае мы не можем заблокировать префикс, потому что мы получаем много действительных вызовов с одного и того же блока номеров. Телекоммуникационные компании должны лучше защищать callerId, чтобы его было нелегко подделать. CallerId такой же, как и вся платформа электронной почты и законы о контроле над оружием в США — все 3, callerId, электронная почта и контроль над оружием, были эффективно нарушены более 20 лет, но никто не может договориться о том, как лучше защитить — поэтому они все вроде работает, но вроде не слишком.
Я рекомендую использовать установленное приложение для блокировки вызовов, которое использует общую базу данных, чтобы все получали выгоду от отчетов друг друга. Я использую TrueCaller, и он работает очень хорошо. Желаем удачи всем вам. Конец связи.
Мэтт, я отмечаю ваше как решение по причинам, которые я указал в редактировании моего вопроса. WideProtect великолепен, но ему требуется доступ к вашим контактам, чтобы разрешить доступ указанным абонентам из заблокированного диапазона, но я взломал это. Пока у меня было два дня блаженной тишины. Спасибо. :)
Сладкий! Рад за вас, берегите себя.

Я не могу сообщить о влиянии на производительность при гораздо более низком пределе — мой контакт с именем «Спам телемаркета», к которому я добавляю абонентов и блокирую этот контакт, имеет глубину около 125 телефонов.

Я бы добавил все номера к одному контакту, чтобы упростить вашу жизнь, пока вы не заметите проблему или проблему, а затем немного отступите и перейдете к нескольким контактам.


В какой-то момент, если раздражение от курирования этого списка преодолеет мою нерешительность подписаться на услугу, которая интегрируется с телефонным приложением iOS для классификации и попытки заблокировать подозрительных и известных злоумышленников, я, вероятно, заплачу за услугу по блокировке вызовов. Пока что я не могу измерить какое-либо замедление или зависание, но я вижу потенциальные проблемы, если вам удастся иметь тысячи номеров в одном контакте.

Извините, это не очень строго, но это может быть довольно легко проверить эмпирически, создав контакт с 5000 номеров и увидев, когда он сломается, когда у вас есть время и резервная копия для восстановления вашего устройства iOS.

Если бы мне нужно было профилировать это, я мог бы использовать инструменты, чтобы подключиться к приложению контактов и посмотреть, где контакт хранится в файловой системе (для iOS или macOS), поэтому явно есть способ реконструировать, сколько места занимает номер для хранения и измерить любое использование ЦП, связанное с редактированием этого файла или обработкой этих данных. Если вы не видите скачков памяти и процессора, вы, вероятно, можете с уверенностью предположить, что, пока вы продолжаете добавлять номера, система будет хорошо реагировать, если вы просто посмотрите на общую скорость устройства при редактировании этого контакта.