В приложении метро не показывает на карте
На прошлой неделе на Хабре был популярный пост о странностях в поведении приложения Яндекс.Метро под Андроид. Мы очень серьёзно относимся к вопросам приватности наших пользователей и корректности поведения наших программ и по итогам поста провели внутреннее расследование.
Его результатом стал не только подробный рассказ о происходившем, который можно прочитать ниже, но и обновление Яндекс.Метро для Android, в котором мы исправили ошибки, приводившие к описанному поведению. Сейчас оно раскатывается в сторе. Напомним, что приложение в фоновом режиме могло отправлять данные на сервера Яндекса. Мы в изначальном посте сразу же ответили, что это баг и такое поведение не было заложено в Метро.
За прошедшее время мы нашли причины, которые привели к подобной ситуации, и сейчас проверяем все наши приложения на предмет таких ошибок.
Мы хотим извиниться перед всеми, кого затронула эта проблема, сказать спасибо автору оригинального поста merced2001, а также всем пользователям, которые помогали выяснять подробности и задавали хорошие вопросы. В самом начале — очень краткие ответы на те, которые были явно заданы в том посте.
Как связан постоянный сбор информации о моем местоположении с работой Вашей карты метро?
Никак. Отправка данных, когда приложение не запущено, — ошибка. Мы исправили её в обновлении, которое выкатывается сегодня. Сбор информации в тот момент, когда приложение запущено, нужен, подробнее — ниже.
Зачем вам круглосуточные сведения о моем местоположении?
Они нам не нужны, и мы исправили приложение, чтобы такого больше не было.
Почему приложение отправляет данные
То, что приложения Яндекса общаются с серверами Яндекса и передают статистические данные — нормальное поведение, которое описано в пользовательском соглашении. В случае Яндекс.Метро соединение с сетью нужно в следующих случаях:
- для геолокации пользователя — мы показываем текущее положение на карте метро, позволяя строить маршруты;
- для обновления карт Метро, что происходит достаточно часто — особенно в Москве;
- для сбора статистики использования приложения, которая позволяет его улучшать.
Как же возникла эта ошибка? Отправка статистики была вставлена в обработчик Application.onCreate(), который вызывается каждый раз при инициализации любого из процессов Метро, не учитывая, что бывают не только запуски приложения пользователем, но и фоновые вызовы процессов приложения. О том, зачем на Андроиде приложению вообще работать в фоне, я объясню чуть ниже.
Мы исправили эту ошибку в Метро и теперь проводим аудит всех остальных наших приложений, чтобы найти и, если обнаружим, убрать отправку статистики, когда приложение запускается в фоновом режиме. Тут ещё стоит отличать запуск приложения фоновыми процессами от вполне легитимной ситуации работы приложения в фоне. Например, Яндекс.Музыка играет в фоне песни, а Яндекс.Диск — синхронизирует фотографии. Эти действия требуют обращения в сеть, что нормально. Но если приложение было запущено пользователем, затем он из него вышел, система его выгрузила, а потом по какому-либо событию загрузила в фоне, то, конечно, статистика отправляться не должна.
Есть одно исключение из этого правила, которое нам заранее известно, — Яндекс.Метрика для приложений. Это наша система статистики, которую создатели приложений могут внедрить в свои продукты. Она не пытается работать с сетью в каждом приложении, в котором установлена, а выбирает одно приложение на телефоне как ведущее, создаёт в его рамках отдельным процессом сервис, через который все остальные приложения отправляют свою статистику. Таким «главным» приложением может быть выбрано любое из тех, где есть Метрика (в том числе и Метро). Тогда в фоне запросы через него уходить продолжат — но лишь те, которые отправляет активное приложение с Яндекс.Метрикой.
Работа приложений в фоне
Многие из вас понимают, как устроена ОС Андроид, и знают, что вызов отдельных процессов приложений в фоне — это совершенно нормальное её поведение. Приложения могут подписываться на разные события и вызываться при их наступлении, обрабатывать поступающие данные и переставать работать. Например, Яндекс.Почта подписана на пуши от сервера о факте прихода нового письма. Она запускается, получает письмо, показывает нотификацию и по клику на неё позволяет прочитать письмо. Yandex.Store подписывается на события установки любых приложений.
Яндекс.Метро было подписано на событие загрузки системы, потому что в нём есть опциональная возможность включить поисковый виджет в области нотификаций, который должен загружаться вместе со стартом системы. Процесс Метро запускается в процессе загрузки ОС, проверяет состояние этой опции и, если виджет не включен, выходит, заканчивая свою работу.
Однако невзирая на то, что это в целом нормально, мы считаем, приложения не должны запускаться слишком часто — в некоторых жалобах говорили о том, что Метро запускается в фоне раз в минуту! Это явно неправильно — нужно экономить батарейку и другие ресурсы телефона. Поэтому в процессе разбора возникшей ситуации мы начали проверку всех наших приложений, чтобы постараться сократить количество фоновых запусков.
Увы, не все функции работают так, как нужно. (+скриншоты)
Сегодня мне бы хотелось рассказать вам о своем опыте использования приложения "Метро Москвы".
Начинается приложение со схемы метро. Она умеет автоматически подбирать варианты проезда от одной станции до другой. Для примера я взяла Жулебино и Крылатское; приложение нашло четыре варианта проезда и отсортировало их по времени в пути.
Удобно, но схема метро на Яндексе имеет такие же функции и при этом доступна в браузере.
При переключении на "Город" на экране появляется карта Москвы. Здесь можно узнать, как доехать с одной улицы на другую, используя метро и другой общественный транспорт. Для примера я взяла такие далеко расположенные друг от друга улицы, как 15-я Парковая и Мусы Джалиля.
То же самое умеют стоящие на каждом смартфоне Гугл Карты.
Самая последняя и самая насыщенная кнопка - "Ещё". При нажатии на нее открывается большое меню, разделенное на два подраздела, "Обратная связь" и "Справочники".
В первый входят подпункты "Обращения в метро", "Заявка на сопровождение"; "Забытые вещи", "Работа в метро", во второй - "Линии и станции", "Расписание Аэроэкспресса", "Тарифный калькулятор", "Объекты культуры", "Культурный маршрут", "Экскурсии", "Перехватывающие парковки", "Велопрокат", "Тематические поезда", "Сервисный центр" и "Правила".
К сожалению, я установила приложение, чтобы сообщить об утерянной вещи. Для этого нужно заполнить форму обращения в соответствующем подразделе приложения.
Пять раз заполняла.
Одно случайное нажатие кнопки "назад", и весь текст сбрасывается. Очень бы пригодилась здесь всплывающая надпись "Вы уверены, что хотите выйти?" или хотя бы подтверждение желания покинуть приложение двойным нажатием, но ничего подобного нет.
В конце концов все заполнила, отправила. Проверила почту - подтверждения оставления заявки нет. Ну, думаю, в адресе электронной почты опечаталась, бывает. Заполнила снова, все перепроверила, отправила - подтверждения нет. Видимо, просто не рассылают. Неприятно. Как понять, дошло обращение или нет? Будто в пустоту пишешь.
Предполагаю, что таким же образом работают "Обращения в метро" и "Заявки на сопровождение".
В подразделе "Работа в метро" кратко рассказано о некоторых вакансиях Московского метрополитена.
"Линии и станции" - подробный справочник о каждой станции метро. Можно искать станцию по линии, а можно - по алфавиту. Для примера покажу, что написано о печально известной регулярной давкой станции Выхино.
Указаны и входы, и выходы, и наземный транспорт, и доступность для маломобильных граждан, и история станции.
В разделе "Расписание Аэроэкспресса" находится расписание скоростных электричек, курсирующих в аэропорты (Внуково, Домодедово, Шереметьево) на вокзалы (Киевский, Павелецкий, Белорусский) и обратно. Аэроэкспресс в / из Шереметьево также делает остановку на станции Окружная, по ней тоже есть расписание.
Раздел "Тарифный калькулятор" - для тех, кто хотел бы рассчитать себе самый выгодный тариф. Увы, он работает некорректно. Если ввести, например, 40 поездок в неделю на метро, предложит не безлимитный билет на месяц, а "Единый" на 60.
Раздел "Объекты культуры" включает в себя около сотни достопримечательностей Москвы. Тоже неплохой справочник, достопримечательности отсортированы по категориям, а также по алфавиту.
Раздел "Культурный маршрут" предназначен для прокладки маршрута между пунктами из предыдущего раздела, и он не работает от слова совсем.
Для примера я взяла два рандомных маршрута, один из четырех пунктов, а другой из двух.
Приложение "Метро Москвы" я рекомендую, но только как справочник и скорее для гостей Москвы и Подмосковья и людей, недавно сюда переехавших, чем для тех, кто здесь живёт давно.
По умолчанию на Яндекс.Картах транспорт не отображается, если перед этим не была активирована специальная функция через внутренние параметры. Данное замечание актуально сразу для всех платформ, включая настольный веб-сайт и официальное мобильное приложение, но только при условии работоспособности самого сервиса.
Вариант 1: Веб-сайт
Указанные рекомендации будут актуальны, только если в настоящий момент времени транспортное средство функционирует. В противном случае, например, при отмене маршрута в ночное время суток, никакой информации не будет ни при каких обстоятельствах и ни в одной версии сервиса.
Вариант 2: Приложение
- Воспользоваться режимом отображения транспорта в мобильном клиенте сервиса можно путем перехода к нужному региону и последующего нажатия кнопки «Транспорт» на нижней панели. После этого на экране в виде небольших меток отобразится текущее динамическое положение каждого найденного общественного транспорта.
Несмотря на достаточно качественную проработку карты России в Яндекс.Картах, транспорт в некоторых регионах просто не отслеживается. Таким образом, наблюдать за движением в небольших городах или за границей с помощью приложения или сайта, к сожалению, не получится просто из-за технических ограничений.
Способ 2: Использование онлайн-режима
Причиной отсутствия транспорта на карте вполне может выступать использование офлайн-карты на мобильном устройстве при отключенном или ограниченном интернет-соединении. В этом случае любые дополнительные данные блокируются, отчего нельзя ни использовать панорамы улиц, ни просматривать информацию о различных местах, ни, конечно же, отслеживать транспорт.
Для устранения проблемы достаточно будет подключить качественный интернет со скоростью от 5 Мбит/с и перезапустить рассматриваемое приложение. В некоторых случаях для правильной работы приложения и указанной возможности может потребоваться отключить режим энергосбережения и экономии трафика, включаемые для отдельных программ или сетей.
Способ 3: Устранение возможных проблем
Любые возникающие неполадки с транспортом в приложении или на сайте, при условии выполнения указанных ранее действий, могут быть связаны только с более глобальными проблемами. Причиной этому может быть как временная недоступность сервиса для всех пользователей сразу, так и ошибки в работе браузера или мобильного клиента.
Особое внимание среди всех доступных методов исправления проблем стоит уделить включению поддержки JavaScript в браузере и установке последней версии мобильного приложения на не менее актуальном выпуске операционной системы. В крайнем случае не стоит пренебрегать формой обратной связи, хотя бы с целью уточнения информации о транспорте и поддержке отслеживания.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Как бы мы не ругали общественный транспорт, он по-прежнему остается одним из самых удобных и доступных способов передвижения для большинства людей, проживающих в больших городах и мегаполисах. Самым распространенным, конечно же, является метрополитен, который ежедневно перевозит миллионы людей в разных уголках мира. В бешеном ритме современной жизни, человеку очень тяжело удержать в голове информацию обо всех многочисленных станциях, маршрутах и остановках, поэтому нам на помощь приходят специальные приложения. Их сейчас довольно много, а потому мы отобрали для вас самые лучшие приложения, которые помогут вам с легкостью ориентироваться в метро, спланировать ваш маршрут движения и всегда знать о том, где найти ближайшую станцию.
Яндекс.Метро
Пожалуй, самое популярное приложение,которое знает о метрополитене буквально всё. С его помощью вы легко сможете найти оптимальный маршрут к определенному месту, а также узнать примерное время, которое займет поездка, причем с учетом пересадок. Еще приложение подскажет вам в какую часть поезда садиться, чтобы быстрее доехать. Стоит отметить важный момент, приложение умеет работать даже без подключения к интернету, то есть вся информация будет доступна вам прямо во время поездки. На данный момент в Яндекс.Метро имеются карты метрополитена для самых больших городов России, Украины и Беларуси, среди которых Москва, Санкт-Петербург, Киев, Харьков и Минск.
Метрополитен
Еще одно специализоранное приложение, призванное помочь вам в передвижении на метро. Это приложение пользуется не меньшей популярностью, чем Яндекс.Метро, благодаря дополнительной функциональности и большему охвату городов. В России — это Москва, Санкт-Петербург, Нижний Новгород, Новосибирск, Самара, Екатеринбург и Казань. В странах бывшего СССР — Киев, Харьков, Днепропетровск, Баку, Ереван, Минск, Тбилиси и Ташкент. Приложение показывает карту города со схемой и станциями метро (при этом станция отправления выбирается автоматически, исходя из вашего метоположения). Позволяет рассчитать оптимальный маршрут передвижения, с учетом места посадки для быстрого перехода и выхода в город. а также показывает все входы в метро. В приложении удобный поиск, который учитывает старые названия станций и ищет их названия сразу на нескольких языках.
2ГИС — это, прежде всего, подробный справочник организаций города, который умеет работать оффлайн, однако он содержит множество полезной информации, применимой и к метрополитену. Вы получаете доступ к детальной трехмерной карте города и маршруты проезда на авто или общественном транспорте. Приложение охватывает огромное количество городов как России, так и стран СНГ и ближнего зарубежья. В первую очередь, 2ГИС будет полезен для просмотра схем метрополитена и составления оптимальных маршрутов передвижения и поиска ближайших к вам станций метро.
Wikiroutes
Полезное приложение, содержащее все маршруты общественного транспорта (включая метро) для более 600 городов России и 19 стран мира. Благодаря большому сообществу, которое редактирует справочник, вы получаете доступ только к самой актуальной и подробной информации с охватом огромного количества городов. С помощью приложения вы сможете узнать расписание транспорта, траектории движения, время в пути, время прибытия, расстояния и стоимость. В некоторых городах уже доступна информация о расчете прибытия в реальном времени, которая скоро должна появиться и в других.
Метрошка
Самое простое приложение из подборки, но отнюдь не самое бесполезное. Функциональность, заложенная в Метрошку, ограничивается одним лишь определением ближайшей к вам станции метрополитена, но реализована она довольно необычным способом — с помощью режима дополненной реальности. Глядя через камеру iPhone на улицы города, вы увидите интерактивные указатели, которые покажут названия ближайших станций и расстояние до них. Также вы можете проложить оптимальный маршрут к выбранной вами станции. Метрошка работает в Москве, Санкт-Петерсбурге, Киеве, Минске, а также некоторых странах Европы и США.
Инженер-механик, хорошо разбираюсь в технике и технологиях. Более 10 лет пользуюсь Mac и iPhone, знаю всё об экосистеме и продуктах Apple. Не только пишу, но и умею и люблю работать руками. 3 года трудился автослесарем, машину чиню только сам. Спроектировал и с нуля построил дом своими руками, накопив по ходу немало опыта. Обожаю олдскульные видеоигры и комиксы, играю на гитаре.
Читайте также: