От Google CardBoard к автоматическому запуску карт в машине

Тема для написания этой заметки родилась совершенно неожиданно, когда я получил знаменитые Cardboard из Китая.Картонные очки я заказал около месяца назад, когда увидил, что предприимчивые китайцы наладили выпуск дешевых комплектов для сборки.Очки я собрал буквально день назад и еще не успел понять, как управлять приложением с помощью магнитов. В моей версии магниты находятся только на центральной перегородке и как-то мало способствуют управлению. Даже вытащив перегородку и махая ею вокруг телефона сложно найти движение, воспринимаемое как клик. Изображение в фокусе получается, только если отодвинуть телефон на несколько миллиметров от нужного положения. Плюс, буквально за 20 минут тестирования, на картонке появился след от пота со лба. Вобщем картонка получилась достаточно спорной и надо будет попробовать распечатать на 3D принтере более совершенные очки для этого дела + решить вопрос с магнитами.0c249d273a574ed6b1ce60a4d68e24f3.jpgОчки то я собрал, но вот клеить NFC метку я не спешил.Сегодня выдалось немного свободного времени, и я решил посмотреть, что с меткой можно сделать. Первая идея — заставить запускаться приложение при поднесении к метке. Сказано — сделано: NFC ReTag запомнил и метку, и то, что надо запускать карты по контакту с меткой. Но тут выяснилось, что при поднесении метки к моему Nexus 5 запускается окно выбора приложений, которые умеют с метками работать. Причем установить дефолтное не представляется возможности. Т.е. либо удалить все приложения кроме одного, либо тыкать каждый раз в этот NFC ReTag. Оба варианта как-то неинтересны: схему метро я еще не выучил наизусть, а тыкая в экран я и без метки мог запустить карты.После этого я стал искать способ обойти проблему и наткнулся на приложения NFC Tools и NFC Tasks.d3cce29d0d1b4e92a16ceb60cb264ffa.pngЧто меня больше всего впечатлило, так это то, что в этот кусочек бумаги можно записать 137 байт телефоном. Тут, конечно, кто-нибудь скажет, что тут такого, все об этом давно знают. Но одно дело знать, а другое дело вот так раз и записать ссылку на нужное приложение в наклейку. В общем, после записи ссылки карты стали запускаться без лишних вопросов. «Класс!» — подумал я. И задался вопросом —, а как же блокировка экрана? Ведь, пожалуй, самое сложное при запуске карт в машине — не нажать на ярлык, а разблокировать экран вводом пинкода. Тут же вспомнил про проект NFCRing. Раз есть кольцо с меткой для разблокировки, значит в Android возможность такой разблокировки есть.Поиск программ привел меня к NFC LockScreenOff EnablerДля его работы нужнен Xposed Installer, который в свою очередь устанавливает на телефон Xposed framework. Данный фреймворк считается довольно безопасным способом кастомизации любой прошивки. Поэтому, дабы довести затею до конца, я получил рут права с помощью towelroot и установил вышеописанные приложения. Занеся метку в список доверенных и выставив режим чтения NFC только при включенном экране, я получил заветную магию. Теперь вставляя телефон в автомобильный держатель происходит следующее: Телефон включает экран из-за беспроводной зарядки в держателе. Из-за совпадения серийника происходит разблокировка аппарата. Выполняется запуск карт по ссылке из метки. 3e4261021085480e86dddedc2774081f.jpgЕсли кто-то знает, как добиться того же эффекта без получения рут прав, я с удовольствием добавлю в статью альтернативный путь.

© Habrahabr.ru