Скачать 2GIS Dialer на Андроид. 2ГИС Диалер - шустрая звонилка со справочником всех телефонов организаций в городе для Android

Скачать 2GIS Dialer на Андроид. 2ГИС Диалер – шустрая звонилка со справочником всех телефонов организаций в городе для Android

Вступление

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

Как сделать чтобы яндекс определитель кто звонит?

Как подключить определитель номера

База данных


Сначала решили тупо добавить все номера, и вновь неожиданность — номера должны быть добавлены не абы как, а в порядке возрастания: 01, 02, 911 и т.д. В противном случае экстеншн падает. В первой бете 8 xcode экстеншен падал вообще без ошибок.

Далее выяснилось, что мы ограничены 1 999 999 номерами. Да, именно 1 999 999, а не 2 000 000, что тоже не совсем равняется нашим 4 000 000 номеров. Хотели сначала сделать три расширения, наполниться каждое до 1 999 999 номеров и в ус не дуть. Потом решили разделить по регионам:

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

Поначалу хотели доставлять данные через SQLite. Собрали простую базу в 100 000 номеров из Новосибирска, написали логику работы с базой, запустили демопроект, и… ничего. Ошибок нет, всё ок, а номера не определяются.

Покопав это дело, выяснили, что при попытке вытащить данные из SQLite в ascending order база создаёт кеш на 30 Мб и экстеншн падает по памяти. Покопав форумы Apple, поняли, что лучше не вылезать за 5 Мб оперативной памяти. В итоге при объединённой базе для Москвы, Питера и ещё пары городов нужно будет сильно усложнять запросы к базе, строить хорошо оптимизированные по памяти и скорости фетчи, и усложнять процесс тестирования. Делать все это было совсем некогда, неохота, к тому же моих компетенций в околобазаданных технологий явно не хватало.

Запилили свой тупой, как бревно, формат данных в виде битовой последовательности:

[uint16_t: Размер блока][unsigned long long int:Phone][String:Name]

и очень простой парсер без заморочек:

    @interface DGSPhonesDataReader : NSObject
    /**
     Текущее значение телефона, пока не позван next, будет 0
     */
    @property (nonatomic, assign, readonly) unsigned long long int phone;
    /**
     Текущее значение имени, пока не позван next, будет nil
     */
    @property (nonatomic, copy, readonly, nullable) NSString *name;
    
    - (instancetype)initWithFilePath:(NSString *)path;
    - (BOOL)next;
    
    @end
    #import "DGSPhonesDataReader.h"
    
    @interface DGSPhonesDataReader ()
    @property (nonatomic, strong, readonly) NSData *data;
    @property (nonatomic, assign) NSUInteger location;
    @property (nonatomic, assign, readwrite) unsigned long long int phone;
    @property (nonatomic, copy, readwrite, nullable) NSString *name;
    @end
    
    @implementation DGSPhonesDataReader
    
    - (instancetype)initWithFilePath:(NSString *)path
    {
            self = [super init];
            if (self == nil) return nil;
    
            NSError *error = nil;
            _data = [NSData dataWithContentsOfFile:path options:NSDataReadingMappedIfSafe error:&error];
            _location = 0;
            if (_data == nil)
            {
                    NSLog(@"DGSPhonesDataReader data create error: %@", error);
            }
            return self;
    }
    
    - (BOOL)next
    {
            uint16_t blockLength;
            [self.data getBytes:&blockLength range:NSMakeRange(self.location, sizeof(blockLength))];
            self.location  = sizeof(blockLength);
    
            unsigned long long int phone;
            NSUInteger textLength = blockLength - sizeof(phone);
            [self.data getBytes:&phone range:NSMakeRange(self.location, sizeof(phone))];
            self.phone = phone;
            self.location  = sizeof(phone);
    
            uint8_t buffer[textLength];
            [self.data getBytes:buffer range:NSMakeRange(self.location, textLength)];
            self.name = [[NSString alloc] initWithBytes:buffer length:textLength encoding:NSUTF8StringEncoding];
            self.location  = textLength;
    
            return self.location < self.data.length;
    }
    @end

Да, по идее нужно использовать кеш, читать блоком по 8 Кб и всякие такие дела. Но такой алгоритм пробегает по базе в 2 000 000 номеров за 10 секунд в отдельном системном процессе, не затрагивая никак основное приложение, притом происходит это один раз за обновление, поэтому решили сильно не заморачиваться с оптимизацией.

Ура! Теперь мы умеем безопасно парсить номера телефонов из базы, спокойно укладываясь в лимит 5 Мб памяти. Но время идёт, а фича всё ещё не готова.

Все «радости» callkit или как мы делали определитель номера на ios 10

2ГИС давно хотел поделиться с пользователями айфонов своими знаниями о телефонных номерах компаний из справочника. Android-платформа давала такую возможность, а вот под iOS подходящего инструмента долго не было.

В июне мы ездили на WWDC 2022, и на одной из сессий ребята из Apple обмолвились, что наконец-то можно делать «gorgeous astonishment» — определитель номеров под iOS 10. Радости нашей не было предела, но до поры до времени: как Apple любит, фичу она предоставила с рядом ограничений.

Всё впереди

Худо-бедно dialer попал в AppStore, и тут нас ждала четвёртая «радость».

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

Мы постоянно получаем жалобы, что определитель не работает, или вопросы, как его включить. Пока, как промежуточный вариант, сделали отдельный пункт про определитель в настройках 2ГИС.

С iOS 10.3 Apple подкинула ещё проблем: если обновиться до этой версии, то определитель пропадает в настройках до тех пор, пока пользователь либо не переустановит приложение, либо не накатит обновление. Экстеншн в целом ведёт себя нестабильно. Периодически (по непонятным причинам и законам) он выключается или вовсе пропадает из настроек при обновлении. Иногда, в процессе обновления номеров, система молча прибивает экстеншен с кодами ошибок:

→ CXErrorCodeCallDirectoryManagerErrorLoadingInterrupted;→ CXErrorCodeCallDirectoryManagerErrorUnknown.

Ещё в октябре мы создали пару радаров в Apple с просьбой дать нам ручку, чтобы позволить пользователям включить dialer из самого приложения, и по поводу баги с 10.3. Первый тикет Apple игнорирует с октября, а второй находится в ооочень длинной очереди.

Так что в ближайшее время мы вряд ли сможем сделать продукт лучше для пользователя.

Как всё это в итоге работает:

Доставка данных

Дальше нужно было понять, как доставить эти данные в экстеншн, то есть, по сути, в отдельное приложение. Зашить их там не получится, так как пользователь скачивает новые регионы, удаляет старые, а ещё мы хотим всё обновлять, данные устаревают, добавляются новые, а мы же компания про точность и актуальность.

Оказалось, что за нас уже всё придумали и есть замечательная штука App Groups, которая позволяет шарить данные между двумя приложениями от одного разработчика.

Можно положить в основном приложении файл по пути:

      (NSString *)extensionDataPath
    {
            return [[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:[self extensionGroupName]].path stringByAppendingPathComponent:@"Dialer"];
    }

а в экстеншне достать его через:

    NSString *databasePath = [[DGSCallKitExtensionModel extensionDataPath] stringByAppendingPathComponent:manifest.databaseName];

Хоть проблем с доставкой не было никаких, и на том спасибо.

Дальше мы приготовили данные в нужном формате. Если не сильно углубляться, 500 Мб файл в формате .tsv нужно раскидать по 108 регионам, перегнать в бинарный формат, заархивировать и создать джобу на дженкинсе, чтобы не делать всё это руками и иметь готовую портянку данных для каждого релиза без особой боли. Короче, на это мы тоже потратили прилично времени — около 90% от всей разработки.

Сейчас ищут техподдержку:  Как убрать или обойти бизнес аккаунт в Друг Вокруг

Встала задача доставить эти данные в телефон (вторые 90% разработки).

Сначала решили использовать технологию «On demand resources», а заодно и узнать, зачем нужна третья, вечно пустая вкладка в xcode — Resource Tags.

Эти ребята расскажут лучше:

Если коротко, Resource Tags для нас — это просто манна небесная (а именно Download Only On Demand). Она позволяет пометить некоторые ресурсы приложения тэгами, указать их тип, и при заливке приложения в стор он не будет включать их в бинарь. Потом их можно докачать при помощи NSBundleResourceRequest и получить через [NSBundle mainBundle].

Идентификация вызова для владельцев ios

Сейчас ищут техподдержку:  Горячая линия Ростелеком - как позвонить в техподдержку

Как на андроиде включить определитель номера?

От этой функции не зависит, будет ли ваш номер виден абонентам, которым вы звоните.

  1. Откройте приложение «Телефон» .
  2. Нажмите на значок меню Настройки АОН и спам.
  3. Включите или отключите эту функцию.
  4. При желании вы можете включить функцию Фильтровать спам, чтобы заблокировать ненужные и навязчивые звонки.

Как называется программа которая определяет номера телефонов?

TrueCaller

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

Как настроить определитель номера на смартфоне

Для смартфонов на iOS и Android существуют специализированные приложения, которые отвечают за определение номеров входящих звонков и предоставляют возможность их блокировки. От пользователя требуется только установить одно из подобных приложений и активировать его в настройках правильным образом.

В App Store и Google Play представлено множество приложений-определителей номеров. Самые популярные из них: «Яндекс» (хороший АОН есть прямо в официальном приложении поисковика), «2ГИС» (это же касается популярного картографического приложения) и WhoCalls от «Лаборатории Касперского». Выбирайте любой — в целом их базы номеров идентичны.

После установки приложения функцию определения номеров останется активировать. На iPhone для этого необходимо перейти в меню «Настройки» → «Телефон» → «Блок. и идентиф. вызова» и разрешить загруженному приложению определять номера при входящем вызове.

На Android 9 и более новых версиях любому из подобных приложений требуется дать дополнительное разрешение на работу, указав утилиту в качестве стандартного помощника. Для этого необходимо перейти в пункт «Помощник» и выбрать тот, который был установлен ранее для определения номеров.

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

Источник

Как настроить определитель номера на смартфоне и забыть про телефонных мошенников

Таких звонков все больше, пора разобраться с ними.

С каждым годом россияне получают все больше мошеннических звонков. Согласно исследованию «Лаборатории Касперского», каждый десятый россиянин сталкивался с телефонным мошенничеством в 2022 году. По данным Сбербанка, в 2022 году количество жалоб на мошеннические звонки превысило 2,5 млн штук по сравнению всего со 160 тысячами жалоб в 2022 году.

Как подключить определитель номера теле2?

Сделать это можно несколькими способами. Первый – отправить запрос *210*1# и нажать кнопку вызова. Второй вариант – позвонить специалистам сервисной службы (номер оператора 655). Третий способ – включить определение номера, войдя в личный кабинет на официальном сайте оператора.

Как поставить на телефон определитель номера?

Чтобы активировать определитель номера на Android, вам нужно сделать следующее:

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

Определитель подскажет, кто вам звонит, если входящего номера нет в контактах вашего телефона. Неизвестные номера сравниваются с базой данных, которая регулярно обновляется, в том числе с помощью отзывов пользователей приложения. Доступа к содержимому звонков и сообщений у определителя нет. …

Как убрать определитель номера?

Для отключения антиопределителя номера наберите команду *110*070#вызов. Вы можете самостоятельно управлять услугой. Чтобы вызываемый абонент увидел ваш номер, достаточно набрать команду *31#номер вызываемого абонента и нажать кнопку вызова.

Как узнать кто звонил приложение?

Truecaller — это самое популярное приложение, которое позволяет узнать кто звонит с неизвестного номера. Оно также может блокировать нежелательные вызовы, полностью защищая вас от ненужных звонков.

Как узнать кто мне звонил с неизвестного номера?

Самый простой способ определить, кто звонил с незнакомого номера — пробить его через поисковики. На такую проверку уйдет буквально минута, но зачастую получится узнать, к какой организации или компании относится номер. Чаще всего такой быстрой проверки достаточно для того, чтобы опознать номер.

Как установить определитель номера на айфон?

Как включить определитель номера в iOS

  1. Откройте «Настройки».
  2. Перейдите в раздел «Телефон» → «Блокировка и идентификация вызовов».
  3. Активируйте тумблер рядом с нужным приложением (из-за особенностей работы iOS, системе может потребоваться время, чтобы добавить новое приложение в этот список.

9 нояб. 2022 г.

Как установить яндекс определитель номера?

Чтобы включить определитель номера, выберите таким помощником приложение Яндекс.

  1. Нажмите → Определитель номера.
  2. Внизу экрана нажмите кнопку Включить.
  3. В подсказке нажмите кнопку Перейти в настройки.
  4. Выберите пункт Помощник → Яндекс и нажмите ОК.
  5. В подсказке нажмите кнопку Продолжить.
Сейчас ищут техподдержку:  Что делать, если Telegram не работает

Какие есть альтернативы

ExDialer – звонилка, которая поддерживает русский SmartDial. У приложения хорошая скорость работы и так же быстро находятся контакты. Существуют дополнительные настройки: изменение темы, шрифта, размера кнопок, действий на горизонтальные свайпы и многое другое. Но бесплатно утилита будет работать всего 7 дней, затем нужно приобретать платную версию.

Asus Dialer – функциональный и удобный менеджер звонков. Поддерживает SmartDial, темы оформления. Можно управлять заблокированными абонентами и контактами из черного списка. Присутствует простой режим, включив который все элементы и шрифт станут крупными, но тогда не будет поддержки SmartDial. Основное преимущество – программа бесплатная.

Как видите, замена 2GIS Dialer есть, и это еще не весь список. Но не смотря на это приложение установили на свои устройства больше миллиона пользователей. Это говорит о том, что оно все-таки востребовано среди себе подобных.

Какой самый лучший определитель номера?

Топ лучших приложений для определения номера на Android

  • Определитель номера от Яндекса
  • TrueCaller.
  • Getcontact.
  • Sync.ME.
  • Айекон: определитель номера, вызовы и контакты
  • Hiya.
  • Заключение

4 сент. 2020 г.

Кто звонил программа на айфон?

TrueCaller — это программа, которая предоставляет информацию о том, откуда поступают входящие звонки, а также SMS-сообщения. Приложение использует собственную базу телефонных номеров, а также несколько баз партнеров.

Поддерживается ли сейчас 2gis dialer

Разработчики прекратили поддержку 2GIS Dialer. Последний раз приложение обновлялось больше года назад. Виной этому стала не совсем корректная его работа.

Многих пользователей не устраивал тот факт, что для быстрого набора нельзя выставить свои номера. Так, например, кто-то много разговаривает по телефону, выясняя рабочие моменты, поэтому автоматически выбраны рабочие номера, а хотелось бы поставить первыми в список родных или близких людей.

Для определения номеров нужно, чтобы устройство всегда было подключено к интернету, без этого утилита не распознает входящие звонки.

Также замечалось торможение программы во время запуска.

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

Приложение 2gis dialer знает номера всех организаций в вашем городе

Компания DoubleGIS, известная своим одноименным картографическим сервисом 2GIS, выпустила крупное обновление своего фирменного диалера 2GIS Dialer для смартфонов под управлением операционной системы Android. Приложение получило обновлённый пользовательский интерфейс, выполненный в стиле Material Design, а скорость работы, как уверяют разработчики, выросла вдвое.

2GIS Dialer заменяет стандартное приложение для звонков, объединяя список ваших контактов и данные об организациях и различных учреждениях в вашем городе. Приложение определяет номер входящего звонка и ищет его по своей базе. Если номер зарегистрирован на какую-то организацию, то вы узнаете об этом и решите, отвечать или нет.

«Мы переписали приложение заново, чтобы сделать его быстрым и добавить возможности, о которых нас просили пользователи», — рассказал менеджер DoubleGIS Евгений Пономарёв.

Скачать 2GIS Dialer на Андроид. 2ГИС Диалер - шустрая звонилка со справочником всех телефонов организаций в городе для Android

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

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

Ключевые особенности новой версии 2GIS Dialer:

  • Кто звонил? Смотрите, кто звонил, даже если номера нет в адресной книге. Диалер проверяет все входящие звонки по базе 2ГИС.
  • Поиск номеров компаний. Находите организации в Диалер и сразу звоните в них. Вся база 2ГИС встроена в «звонилку» и уже в вашей телефонной книге.
  • Быстрый набор. Звоните самым востребованным контактам в два нажатия. Диалер анализирует, кому и когда вы звоните, учитывает встречи в календаре и предлагает нужные контакты для быстрого набора.
  • Поиск контактов. Ищите контакты удобным для вас способом ввода – Т9 или QWERTY. Диалер понимает транслит и находит как «Sasha», так и «Саша»
  • Темы оформления. Выбирайте цвета и меняйте по настроению. Тёмная тема помимо строгого вида сэкономит батарею на Amoled-экране.

Для работы приложения вам потребуется смартфон с версией операционной системы не ниже Android 4.0.3.

Источник

Прототип


Первая «радость», с которой мы столкнулись — «богатая» документация, а именно:

→ CXCallDirectoryExtensionContext

Вместо заключения

На данный момент фича завершена, в ближайшее время планов по её доработке нет. Но всё ещё хочется сделать выборку по самым определяемым номерам — где-то в районе 100 000 номеров — и зашить их сразу в экстеншн, чтобы пользователи сразу получили минимальный функционал без необходимости скачивать регионы.

Ещё у нас есть довольно много данных о «токсичных» номерах: коллекторские агентства, различного рода опросы, разные финансовые пирамиды и другие неугодные номера, на которые пожаловались пользователи Dialer на Android. Их мы тоже можем доставить отдельным пакетом всем желающим.

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

Источник

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Оставьте комментарий

Adblock
detector