Ранее, в Android была возможность определить, какие другие приложения запущены на устройстве (через метод getRunningAppProcesses). Это явно не секьюрно, и начиная с версии Android 5 такую возможность убрали. Хотя до сих пор можно узнать, какие приложения установлены, что также как-то не очень…
Этим летом мне приходилось часто ездить по городу туда-сюда. В некоторых поездках я использовал такси. На телефоне установлены два приложения: Яндекс.Такси и Gett Такси. Обычно, сначала запускаю Яндекс.Такси, смотрю на предлагаемую цену поездки, затем запускаю уже Gett, смотрю там, сравниваю, и останавливаюсь на том предложении, которое выгоднее.
В тот раз я воспользовался Яндексом, но уже на следующий день на почту пришло письмо от Gett с бонусами на следующие поездки. «Совпадение? Не думаю» (c)
Если бы у меня на телефоне был Android ниже Lollipop, то можно предположить, что Gett увидело, что используется Яндекс.Такси, и решило предложить бонусы для возвратности (что ранее делали многие конкурирующие сервисы). Однако до этого приложение Gett Такси я запускал очень давно, и после того, как теперь запустив приложение, но не сделав заказ, и тут видимо, просто сработал триггер на предоставление бонусов.