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

    Тема для написания этой заметки родилась совершенно неожиданно, когда я получил знаменитые 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 только при включенном экране, я получил заветную магию. Теперь вставляя телефон в автомобильный держатель происходит следующее:
    • Телефон включает экран из-за беспроводной зарядки в держателе.
    • Из-за совпадения серийника происходит разблокировка аппарата.
    • Выполняется запуск карт по ссылке из метки.



    Если кто-то знает, как добиться того же эффекта без получения рут прав, я с удовольствием добавлю в статью альтернативный путь.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 6

      0
      Почти аналогично, использую lame + NFC + беспроводная зарядка. Вот только рут не делал и приходиться пальчиком снимать блок. В остальном очень удобно. В дополнение магнитола с блютусом. Попробую с разблокировкой.
        0
        Если магнитола с блютусом, там совсем все просто. Таскер при нахождении блютуса машины запускает карты.
        .
        Тэг со временем не срабатывает, смотреть с 16:45
          0
          Это при условии включенного Bluetooth. Лично я его редко включаю. А Таскер может разблокировать телефон?
            0
            Буз рута не знаю, т.к. рут на всех устройствах появляется в первый день. С рутом или плагин Secure Settings, который в том числе может отключить keyguard и ввод пинкода если, например, в зоне действия домашней сети, или run shell — input keyevent 26 (эмуляция нажатия кнопки питания)
              +1
              А вообще событие можно повесить на wireless charging — то есть просто беспроводная зарядка даже без метки, если она только в машине. Или ставить дополнительное условие внутри задачи wireless charging — if wi-fi домашний SSID то ничего не делать (ну или что-либо еще), endif запуск карт…
                +1
                Мысль отличная, попробую)

          Only users with full accounts can post comments. Log in, please.