Функция автозаписи трат в "Считаю" все делает сама. Как только банк шлет PUSH-уведомление или СМС о покупке, приложение ловит его на лету. Искусственный интеллект быстро определяет сумму, валюту, категорию и магазин. Ваша покупка сразу появляется в списке расходов.
В этой статье расскажу, как работает автозапись. Объясню, за что отвечает каждый пункт настроек приложения. Покажу, как проходит чтение СМС и импорт расходов. Обсудим техническую сторону этого процесса, чтобы стало яснее, как всё устроено внутри.
Настройка автозаписи
В настройках автозаписи трат видно три переключателя. Каждый следующий шаг даёт приложению больше свободы для работы в фоне. Первый вариант самый простой. Второй повышает устойчивость. Третий почти полностью защищает от вмешательств Android.
Чтобы автозапись работала, приложению нужен доступ к уведомлениям. После этого Android включит специальную системную службу. Без такого разрешения ОС запретит любому приложению читать ваши уведомления. Это сделано для защиты данных пользователя.
Чтобы приложение не засыпало на Android, его нужно убрать из энергосбережения. Тогда пуши доходят всегда, даже если вы забыли про приложение на неделю.
Постоянный фоновый процесс всегда работает в памяти устройства. Он не уступает по важности навигации или плееру. Android требует показать уведомление для таких задач — появится табличка "Считаю ваши траты". Уведомление можно убрать через настройки Android в разделе "Автозапись трат" (bank_push_channel). Все плюсы стабильной работы никуда не денутся.
Чтение СМС и импорт истории
Пуш-уведомления банка иногда не доходят. Причины бывают разные: плохой интернет или банк просто шлёт обычные СМС. В "Считаю" есть функция для чтения входящих сообщений. Можно загрузить историю и не потерять важные данные.
В манифесте приложения указываются разрешения "RECEIVE_SMS" и "READ_SMS". Как только на телефон поступает сообщение о транзакции, запускается компонент "SmsReceiver". Это наследник класса "BroadcastReceiver". Он ловит событие "SMS_RECEIVED_ACTION" и собирает части длинного сообщения в единый текст. Полученный текст через нативный мост отправляется во Flutter с помощью "EventChannel".
Если вы только что скачали приложение или решили добавить старые расходы, попробуйте импортировать историю СМС за месяц. Просто нажмите на кнопку импорта. Flutter через MethodChannel вызывает функцию "importSmsHistory". Программа подключается к Android по адресу "content://sms/inbox". Она ищет сообщения от банков и отправляет их на сервер для анализа.
Различия версий для магазинов
Функции приложения бывают разными в зависимости от источника установки. Мы создаём три версии через Gradle flavors.
- Версия с сайта даёт автообновление через "REQUEST_INSTALL_PACKAGES" плюс полный доступ к СМС.
- В RuStore обновления делает сам магазин, автообновление не нужно, доступ к СМС остаётся.
- В Google Play политика строже: без статуса приложения для СМС доступ к сообщениям убрали из манифеста и кода, чтобы приложение не заблокировали.
Как ИИ понимает текст сообщений
Мама смотрит на это как на магию. Робот тут же читает сообщение, видит потраченную сумму и мгновенно понимает, в каком магазине всё произошло. Он сам сортирует покупку по категориям без лишних вопросов. Ему не мешают странные сокращения типа "POS" или "AC No". В путешествиях он не путается в валютах, легко переводит дирхамы или лари в рубли.
Тут скрыт целый мир на FastAPI для ценителей технологий.
-
Сначала приложение проверяет отправителя по списку доверенных имён вроде "tbank" или "sber". Текст тоже смотрит по шаблону. Рекламу и одноразовые коды выкидывает сразу. Батарея и интернет расходуются меньше.
-
Очищенный текст грузится на сервер. Там большая языковая модель вытаскивает сумму, валюту, бренд и дату.
-
Если валюта не домашняя, сервер идёт за курсом. Курсы берутся даже для редких валют вроде BDT через "open.er-api.com". Итоговая сумма переводится в основную валюту пользователя. Всё кэшируется в Redis.
-
Чтобы не считать одну покупку дважды, система ищет совпадения по хэшу отправителя, сумме, времени и номеру счёта. Совпало? Покупка не дублируется.
Безопасность и конфиденциальность
Безопасность ваших данных строится по принципу "Zero Trust" (нулевого доверия):
- Нет доступа к счетам: Приложение не знает ваших паролей, не подключается к счетам напрямую и работает только с текстом приходящих уведомлений.
- Локальная обработка: Личные переписки из Telegram или СМС от друзей отсекаются прямо на устройстве и не передаются в сеть.
- Шифрование: Все авторизационные ключи и токены на устройстве зашифрованы с использованием системного хранилища ключей Android (KeyStore).
Часто задаваемые вопросы
Да, всё будет работать. Автозапись поймает пуш или СМС, сохранит на телефоне. Когда интернет появится, данные отправятся на сервер.
Просто найдите нужную операцию, кликните по ней и смените категорию сами. ИИ учтёт ваш выбор и дальше не будет путаться с такими расходами.