Pull to refresh

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

Reading time3 min
Views15K
Тема для написания этой заметки родилась совершенно неожиданно, когда я получил знаменитые Cardboard из Китая.
Картонные очки я заказал около месяца назад, когда увидил, что предприимчивые китайцы наладили выпуск дешевых комплектов для сборки.
Для тех, кто еще не в курсе про очки: Инженеры Google, видимо впечатленные Oculus Rift сделали из картонной коробки от пиццы, липучек, линз и магнитов очки, в которые вставляется телефон. Они также создали API и демо приложение, которые генерирует правильное стереоизображение. Для управления используется датчик магнитного поля и гироскопы телефона.

Очки я собрал буквально день назад и еще не успел понять, как управлять приложением с помощью магнитов. В моей версии магниты находятся только на центральной перегородке (в отличие от приведенной картинки, где есть магнит сбоку) и как-то мало способствуют управлению. Даже вытащив перегородку и махая ею вокруг телефона сложно найти движение, воспринимаемое как клик. Изображение в фокусе получается, только если отодвинуть телефон на несколько миллиметров от нужного положения. Плюс, буквально за 20 минут тестирования, на картонке появился след от пота со лба. В общем картонка получилась достаточно спорной и надо будет попробовать распечатать на 3D принтере более совершенные очки для этого дела + решить вопрос с магнитами.


Очки-то я собрал, но вот клеить NFC метку я не спешил.
Сегодня выдалось немного свободного времени, и я решил посмотреть, что с меткой можно сделать. Первая идея — заставить запускаться приложение при поднесении к метке. Сказано — сделано: NFC ReTag запомнил и метку, и то, что надо запускать карты по контакту с меткой. Но тут выяснилось, что при поднесении метки к моему Nexus 5 запускается окно выбора приложений, которые умеют с метками работать. Причем установить дефолтное не представляется возможности. Т.е. либо удалить все приложения кроме одного, либо тыкать каждый раз в этот NFC ReTag. Оба варианта как-то неинтересны: схему метро я еще не выучил наизусть, а тыкая в экран я и без метки мог запустить карты.
После этого я стал искать способ обойти проблему и наткнулся на приложения NFC Tools и NFC Tasks.

Что меня больше всего впечатлило, так это то, что в этот кусочек бумаги можно записать 137 байт телефоном. Тут, конечно, кто-нибудь скажет, что тут такого, все об этом давно знают. Но одно дело знать, а другое дело вот так раз и записать ссылку на нужное приложение в наклейку. В общем, после записи ссылки карты стали запускаться без лишних вопросов. «Класс!» — подумал я. И задался вопросом — а как же блокировка экрана? Ведь, пожалуй, самое сложное при запуске карт в машине — не нажать на ярлык, а разблокировать экран вводом пинкода. Тут же вспомнил про проект NFCRing. Раз есть кольцо с меткой для разблокировки, значит в Android возможность такой разблокировки есть.
Поиск программ привел меня к NFC LockScreenOff Enabler
Для его работы нужнен Xposed Installer, который в свою очередь устанавливает на телефон Xposed framework. Данный фреймворк считается довольно безопасным способом кастомизации любой прошивки. Поэтому, дабы довести затею до конца, я получил рут права с помощью towelroot и установил вышеописанные приложения. Занеся метку в список доверенных и выставив режим чтения NFC только при включенном экране, я получил заветную магию. Теперь вставляя телефон в автомобильный держатель происходит следующее:
  • Телефон включает экран из-за беспроводной зарядки в держателе.
  • Из-за совпадения серийника происходит разблокировка аппарата.
  • Выполняется запуск карт по ссылке из метки.



Если кто-то знает, как добиться того же эффекта без получения рут прав, я с удовольствием добавлю в статью альтернативный путь.
Tags:
Hubs:
Total votes 31: ↑28 and ↓3+25
Comments6

Articles