Зачем приложению геопозиция: как iPhone определяет скорость машины
У CarPlay нет данных о том, едет ли машина, поэтому приложение берёт скорость из геопозиции iPhone. PlayUp запрашивает доступ «при использовании» только для этого: выше порога около 11 км/ч картинка на экране машины скрывается. Скорость не сохраняется и никуда не отправляется.
Скоро на iPhone
Почему приложению нужна геопозиция, если оно не навигатор?
PlayUp выводит видео на экран машины, но по смыслу такое видео допустимо только на стоянке. Чтобы это соблюдалось, приложению нужно знать, движется ли машина. У CarPlay для сторонних приложений нет такого сигнала, поэтому разработчик берёт скорость там, где она есть: из геопозиции iPhone. Система определяет её по спутникам навигации, принцип работы кратко описан в Википедии.
В запросе на экране iPhone текст объясняет цель: скорость нужна только для паузы картинки на экране машины в движении, а геопозиция нигде не хранится и никуда не отправляется. Это слово в слово то, что приложение заявляет в системном диалоге, и с ним согласуется политика конфиденциальности приложения.
Может показаться, что проще спросить у машины. Но CarPlay намеренно не отдаёт сторонним приложениям данные о скорости автомобиля: приложение видит только свой интерфейс и касания. Это защита и от злоупотреблений, и от лишней сложности. Поэтому всем, кто хочет знать, едет ли машина, остаётся один способ: измерять движение самим телефоном. Телефон лежит в машине и движется вместе с ней, поэтому его скорость почти не отличается от скорости автомобиля.
Здесь важно разделять два понятия. Геопозиция состоит из координат и скорости. PlayUp интересует только скорость, а точное место ему не нужно. Он не рисует маршрут, не строит карту и не сохраняет ни одной координаты.
Как PlayUp решает, что машина едет?
Правило простое. Порог скорости составляет 3 метра в секунду, что примерно равно 11 км/ч. Если скорость выше порога, машина считается движущейся, а картинка на экране машины скрывается и заменяется заставкой. Звук при этом продолжает играть, пока вы сами его не остановите.
Чтобы один случайный замер не дёргал картинку, приложение требует трёх согласных замеров подряд, прежде чем сменить состояние. Например, на светофоре GPS на секунду показал 15 км/ч из-за погрешности, а потом снова ноль. Одного такого замера мало, и картинка не мигнёт. Когда машина действительно тронулась, три подряд замера выше порога скрывают картинку почти сразу.
Почему порог именно 11 километров в час? Это скорость быстрого шага или медленного бега. Она достаточно высока, чтобы отфильтровать дрожание сигнала на стоянке и медленное перемещение при парковке, и достаточно низка, чтобы картинка исчезла почти сразу, как машина тронулась. Если ехать медленнее, например в пробке, картинка может остаться, но в пробке смотреть тоже нельзя: машина может тронуться в любой момент. Автоматика лишь подстраховывает вас, а решение остаётся за водителем.
Три замера подряд занимают, как правило, считанные секунды: iPhone обновляет скорость примерно раз в секунду во время движения. Значит, между началом движения и скрытием картинки проходит совсем небольшое время.
Что происходит, когда сигнала GPS нет?
Это честное ограничение. Приложение не может видеть то, чего не видит GPS, поэтому не стоит считать автоматику единственной защитой. Правило о том, что водитель не смотрит видео, остаётся за вами.
Если вы едете по длинному тоннелю, скорость не определяется, и состояние сохраняется таким, каким было на входе. Если вы въехали в тоннель, когда машина ехала, картинка так и останется скрытой. Если же вы начали движение прямо под землёй, например на подземной парковке, картинка может оставаться видимой, пока сигнал не вернётся. Поэтому на парковке правило не должно заменять ваше собственное решение закрыть видео перед выездом.
| Ситуация | Что делает приложение | Что это значит для вас |
|---|---|---|
| Скорость определяется нормально | Сравнивает с порогом | Картинка скрывается в движении |
| Нет данных о скорости | Состояние не меняется | Если машина стояла, картинка остаётся видимой, если ехала, скрытой |
| Отказали в доступе к геопозиции | Определить скорость нельзя | Помощник CarPlay подскажет выдать доступ |
| Тоннель или подземная парковка | Данных нет, состояние сохраняется | Не полагайтесь только на приложение |
Какой доступ приложение просит и как его проверить?
PlayUp запрашивает доступ «при использовании приложения», то есть только когда оно открыто. Фонового отслеживания перемещений нет, а значит, приложение не знает, где вы были вчера или как вы ехали. Скорость берётся в момент работы и используется только для решения, показывать ли картинку.
Посмотреть и изменить доступ можно в любой момент: «Настройки» → «Конфиденциальность и безопасность» → «Службы геолокации» → PlayUp. Там можно выбрать «Никогда», «При использовании» или другой вариант. Если запретить доступ, скорость определить будет нельзя, и приложение подскажет, как вернуть разрешение.
Что хранится и куда отправляется?
В приложении нет аккаунта и собственного сервера. Плейлисты, избранное, история просмотров и настройки хранятся на вашем телефоне, а скорость не записывается. Вход в сайты вы выполняете на страницах самих сервисов, пароли PlayUp не видит. В описании данных приложения для App Store нет собираемых типов данных, а отслеживания нет. Подробности есть в политике конфиденциальности.
Важное уточнение: сайты, которые вы открываете внутри PlayUp, работают по своим правилам. Они могут запрашивать геопозицию или собирать данные сами, и это зависит от сервиса. PlayUp лишь показывает страницу.
В приложении нет рекламных или аналитических библиотек, которые отправляли бы данные о вашем устройстве. Поэтому нет и необходимости сопоставлять скорость с вашей личностью. Это упрощает политику конфиденциальности, потому что приложению нечего продавать и нечего скрывать.
Как проверить, что правило работает?
Отдельно стоит проверить поведение при смене настроек. Откройте раздел настроек экрана машины и попробуйте переключить «Звук во время движения». Картинка в движении должна скрываться при любом значении, меняется только звук. Если вдруг видите иное поведение, это ошибка, о которой стоит сообщить через «Поддержку приложения» в App Store.
- Откройте «Настройки» PlayUp → «Помощник CarPlay» и убедитесь, что доступ к скорости выдан.
- Откройте симулятор экрана машины в приложении, он показывает, как выглядит экран.
- Включите переключатель «Машина едет» в симуляторе: картинка должна скрыться и появиться заставка «Картинка спрятана, пока машина едет».
- Выключите переключатель: видео должно вернуться.
- Проверьте на настоящем CarPlay, когда он станет доступен, и сравните показания статуса «Стоит» и «Едет» справа от вкладок.
Можно ли отключить паузу в движении?
Нет. Правило заложено в приложение и не отключается в настройках. Настройка «Звук во время движения» только решает, продолжать ли звук, картинка в движении скрыта всегда. Пассажир, которому нужна картинка, может продолжить на своём телефоне через «Пульт» → «Смотреть на телефоне». Подробности в статье про паузу в движении и в статье видео в машине: безопасность.
Частые вопросы
Зачем PlayUp геопозиция?
Только чтобы определить скорость и скрывать картинку на экране машины, пока машина едет. Геопозиция не сохраняется и не отправляется.
Какая скорость считается движением?
Выше около 11 км/ч (3 метра в секунды). Состояние меняется после трёх согласных замеров подряд.
Отслеживает ли PlayUp мои поездки?
Нет. Доступ запрашивается только «при использовании», фонового отслеживания и записи маршрутов нет.
Что будет, если запретить геопозицию?
Скорость определить будет нельзя, правило паузы работать не сможет. Помощник CarPlay подскажет, как выдать доступ.
Можно ли отключить паузу?
Нет. Картинка в движении скрыта всегда, а звук можно оставить или отключить в настройках.