- Как автоматически запустить приложение при включении или пробуждении Android TV
- Android. Автозапуск приложения при загрузке: теория и практика
- 1. Теория
- 2. Практика: ошибки и особенности эксплуатации
- 3. Отладка ресивера в эмуляторе и на реальных устройствах.
- Итоги
- Как автоматически запустить приложение при включении или пробуждении Android TV
- Телевизор на Android с автозапуском браузера
Как автоматически запустить приложение при включении или пробуждении Android TV
Если Вы пользователь Android TV, то Вы должны задать себе один вопрос: сколько времени Вы действительно тратите на главный экран? Как часто Вы запускаете одно и тоже приложение? К счастью появилось приложение, которое позволит Вам сделать это автоматически.
Предположим, что Вы смотрите только Netflix на Вашем Android TV. Почему бы не сделать так, чтобы при включении Android TV автоматически запускался Netflix?
Для этого мы будем использовать приложение под названием Launch on Boot. Это приложение позволяет запустить одно или несколько приложений при включении или пробуждении Android TV. Это очень просто и понятно, и оно работает.
Поэтому, если Вы еще этого не сделали, то сейчас самое время загрузить его на свой Android TV. Как только Вы установите приложение, появится краткое руководство. Вы можете прочитать его, или нажмите кнопку назад на пульте дистанционного управления, чтобы пропустить его.
На главном экране загрузки идите вперед и активируйте первый переключатель, чтобы включить приложение.
Здесь Вы можете выбрать для запуска ТВ при загрузке включив следующий переключатель — приложение будет автоматически запускать приложение ТВ каналов. Если вы хотите запустить другое приложение, пропустите этот переключатель.
Вы, вероятно, захотите, чтобы понравившееся приложение можно было запускать не только при загрузке устройства, но и при выходе из спящего режима.
Нажмите на кнопку «SELECT APP» для выбора приложения. В данной статье я использую Netflix. Вы можете выбрать, что Вам нравится.
И, наконец, нажмите кнопку «TEST», чтобы проверить, что все работает как надо. Система перейдет в режим сна и Ваше приложение должно будет запуститься. И, конечно же, если Вы хотите попасть на домашний экран, просто нажмите кнопку Home на пульте дистанционного управления.
Во время использования выбранное мною приложение открывалось каждый раз при запуске Android TV, но иногда после пробуждения приложение не запускалось.
Источник
Android. Автозапуск приложения при загрузке: теория и практика
1. Теория
Взглянув на примеры из официального источника (например, этот и этот) и изучив рекомендации на сайте stackoverflow.com, можно выделить следующие правила:
- В манифесте в элементе «manifest» указать разрешение:
В манифесте в элементе «application» зарегистрировать ваш ресивер на прием сообщения ACTION_BOOT_COMPLETED:
Используйте правильное полное или относительное имя класса вашего broadcast-ресивера. В описании ресивера без необходимости не указывайте атрибуты «enabled», «exported» и т.д. Вполне достаточно настроек и атрибутов по умолчанию.
Код вашего broadcast-ресивера:
Если ваш ресивер используется только для сообщения ACTION_BOOT_COMPLETED, то проверка «if» не обязательна. Однако иногда разработчики используют один и тот же ресивер для разных сообщений. В этом случае фильтруйте сообщения, проверяя их внутри метода onReceive.
Приложение должно быть установлено на внутреннюю память. ОС Android устроена таким образом, что сообщение ACTION_BOOT_COMPLETED отправляется приложениям перед монтированием внешний памяти. Поэтому приложения, установленные на внешней памяти, никогда не получат это сообщение. Чтобы указать системе не устанавливать приложение на внешнюю память, в манифесте НЕ нужно прописывать для атрибута «@android:installLocation» значения «auto» или «preferExternal». По умолчанию, т.е. если этот атрибут не указан, ОС установит ваше приложение только на внутреннюю память. Однако согласно официальной документации лучше явно указать значение «internalOnly», чтобы у вас и других разработчиков не возникло искушение в будущем указать иное значение.
После установки или принудительной остановки (force stop) приложение должно быть запущено хотя бы один раз, чтобы система «запомнила» это приложение для отправки ему сообщения ACTION_BOOT_COMPLETED. Такое поведение было реализовано в версии Android 3.1 в целях безопасности. В чем суть? Все только что установленные приложения находятся в состоянии «stopped» (не путать с активити, т.к. ОС управляет этим состоянием у приложений и активити по-разному). В это же состояние приложение «уходит», когда пользователь в настройках телефона принудительно его останавливает. Пока приложение находится в таком состоянии, оно не будет запущено системой ни по какой причине (например, через ACTION_BOOT_COMPLETED), исключая, конечно же, запуск самим пользователем. Благодаря такому нововведению немалая часть«вирусни и троянцев» перестала работать, т.к. уже нет возможности запуститься автоматом после установки.
Исключение составляют системные приложения: см. замечание пользователя kolipass.
Особенности режима Fast boot в HTC-устройствах. Известно, что HTC-устройства не перезагружаются в классическом смысле, а используют так наз. режим Fast boot (это одна из форм гибернации), сохраняя состояние ОС на диск. Поэтому сообщение ACTION_BOOT_COMPLETED не отправляется системой, т.к. в действительности перезагрузка не происходит (см. здесь). Вместо ACTION_BOOT_COMPLETED система может отправить следующие сообщения:
В вашем приложении укажите в теге «receiver» кроме ACTION_BOOT_COMPLETED также вышеуказанные сообщения. Кроме этого необходимо прописать разрешение в дополнение к п.1:
2. Практика: ошибки и особенности эксплуатации
Разберем ошибки, которые совершают новички при настройке приложения и в коде.
- После установки или force stop приложение ни разу не запускалось (см. п.1.5).
Приложение установлено не на внутренней памяти, или пользователь вручную перенес его на внешнюю память (см. п. 1.4).
У некоторых разработчиков прием начинал работать, когда они указывали относительное имя класса ресивера.
Также некоторые разработчики, отлаживая приложение, в logcat не видели своих сообщений из ресивера. Используйте Toast для отладки:
Опечатки или несуществующие сообщения внутри тега ресивера:
Неправильное положение элементов в манифесте приложения:
- «uses-permission» должен быть указан только как прямой потомок элемента «manifest», не нужно его указывать/дублировать в теге «receiver»;
- тег «receiver» должен быть указан только как прямой потомок элемента «application».
Как было указано выше, некоторые устройства используют режим Fast boot. Можно попробовать в настройках телефона отключить этот режим или учесть п. 1.6.
В приложении нет ни одной активити, поэтому после установки у пользователя нет возможности хотя бы 1 раз запустить ваше приложение. Из-за этого сообщение ACTION_BOOT_COMPLETED не будет отправлено в ваше приложение.
Не ошибки, но все же: указаны лишние, не обязательные атрибуты в теге «receiver», например («uses-permission», «enabled», «exported»):
3. Отладка ресивера в эмуляторе и на реальных устройствах.
- В терминале выполните:
Далее, чтобы отправить ACTION_BOOT_COMPLETED всем приложениям, наберите в терминале:
Или для отправки ACTION_BOOT_COMPLETED конкретному приложению наберите в терминале:
В эмуляторе: установите ваше ПО, запустив его из студии. При этом студия соберет ваш проект, установит приложение и запустит его. После этого закройте эмулятор (это аналогично выключению на реальном устройстве). Чтобы получить сообщение ACTION_BOOT_COMPLETED, запустите эмулятор из AVD-менеджера, а не с помощью кнопки «Run app» в тулбаре студии.
После запуска эмулятора во вкладке Android Monitor укажите запущенный эмулятор и ваше приложение, чтобы просмотреть логи logcat.
Итоги
Чтобы ваше приложение запускалось при загрузке на всех устройствах, манифест как минимум должен выглядеть так:
Код ресивера, как правило, будет таким:
Надеюсь, эта статья поможет новичкам побороть «коварного врага» под названием «ACTION_BOOT_COMPLETED».
Источник
Как автоматически запустить приложение при включении или пробуждении Android TV
Если Вы пользователь Android TV, то Вы должны задать себе один вопрос: сколько времени Вы действительно тратите на главный экран? Как часто Вы запускаете одно и тоже приложение? К счастью появилось приложение, которое позволит Вам сделать это автоматически .
Предположим, что Вы смотрите только Netflix на Вашем Android TV. Почему бы не сделать так, чтобы при включении Android TV автоматически запускался Netflix?
Для этого мы будем использовать приложение под названием Launch on Boot . Это приложение позволяет запустить одно или несколько приложений при включении или пробуждении Android TV. Это очень просто и понятно, и оно работает.
Поэтому, если Вы еще этого не сделали, то сейчас самое время загрузить его на свой Android TV. Как только Вы установите приложение, появится краткое руководство. Вы можете прочитать его, или нажмите кнопку назад на пульте дистанционного управления, чтобы пропустить его.
На главном экране загрузки идите вперед и активируйте первый переключатель, чтобы включить приложение.
Здесь Вы можете выбрать для запуска ТВ при загрузке включив следующий переключатель — приложение будет автоматически запускать приложение ТВ каналов. Если вы хотите запустить другое приложение, пропустите этот переключатель.
Вы, вероятно, захотите, чтобы понравившееся приложение можно было запускать не только при загрузке устройства, но и при выходе из спящего режима.
Нажмите на кнопку «SELECT APP» для выбора приложения. В данной статье я использую Netflix. Вы можете выбрать, что Вам нравится.
И, наконец, нажмите кнопку «TEST», чтобы проверить, что все работает как надо. Система перейдет в режим сна и Ваше приложение должно будет запуститься. И, конечно же, если Вы хотите попасть на домашний экран, просто нажмите кнопку Home на пульте дистанционного управления.
Во время использования выбранное мною приложение открывалось каждый раз при запуске Android TV, но иногда после пробуждения приложение не запускалось.
Источник
Телевизор на Android с автозапуском браузера
Доброго времени суток.
Возникла задача на работе использовать информационное табло для вывода расписания приема врачей.
Расписание врачей представлено в виде web-странички. Данные о времени и месте приема подгружается из БД.
Специализированные промышленные информационные табло стоят чрезмерно много.
Вижу несколько вариантов:
Использовать телевизор большой диагональю, и миниПК с браузером. Данный вариант становится дороже на цену миниПК.
Использовать телевизор с функцией SmartTV. Web-страничку открывать встроенным браузером.
Второй вариант предпочтительней. Но есть нюансы.
Ранее в WebOS существовала возможность ставить встроенный браузер как приложение по умолчанию (просмотр телепередач — это обычное приложение, которое было установлено как запускаемое по умолчанию, и его можно было заменить на любое другое). Но после недавнего обновления эта возможность пропала. То есть браузер можно запустить только вручную с пульта, что человек не всегда делает вовремя или забывает вовсе.
В некоторых телевизорах с ОС Android есть возможность установить браузер в автозагрузку. А в некоторых запускает жестко свой собственный лаунчер, и даже запуск браузера — нетривиальная задача.
Перепробовать все телевизоры не представляется возможным.
Может кто нибудь сталкивался со схожей задачей? Какие телевизоры могут подойти, у каких есть возможность настроить автозапуск браузера?
Прошу помощи. Заранее спасибо.
Любой телек плюс tv стик на android tv с автозапуском браузера
Подключение TV стик — это первый вариант. Да и зачем подключать TV стик с Adndroid в телевизор на котором предположительно уже крутиться Android?
SmartTV Если рассудок и жизнь дороги вам, держитесь подальше от этой дряни. Особенно остарегайтесь ставить её кому-то под видом «серьёзной» системы.
Стик проще заставить делать то, что нужно. А android в телевизоре — непонятная хрень, которую никто не трогал и все боятся. А в для стика только ленивый прошивку не сделал — хошьна GNU/линуксе каком, хошь на андроиде, хошь какая экзотике. И вкорячить там броузер в автозапуск раз плюнуть. И стоит значительно дешевле потраченного на телевизор времени.
именно. копать стик куда проще
Сейчас телевизоры, хоть SamartTV, хоть не SmartTV — цена примерно одинаковая. Даже дешевле мониторов такого же размера. Сам удивлен, но факт.
Старый ТВ стик, на который можно конпелять андройд.
Вчера просматривал цены на материнки со впаянным проциками, в принципе за 4500-5500р + ДДР3 память можно влезть в стоимость дешманского ТВ.
Ты откуда? Если со страны сказочного ДНСа, то можно найти бюджетный ТВ с большой диагональю.
С ТВ стиком будет сложнее. БУ их надо искать в СЦ по ремонту электроники. Новый покупать — ну такое занятие, они дорогие.
В принципе китай-коробка на каличном андрюше по цене приближается к Штеуд материнке с распайкой Целероном. Надо еще докинуть денег на память.
Теоретически можно получить root доступ на телике и делать с ним что угодно, но это чисто теоретически.
android 4.4 ставь что хочешь..
Теоретически можно все. Практически — если найдешь телек 2015-го года выпуска по моделям из списка. С необновленной фирмварью.
Я не очень понимаю смысл в дорогой коробке, когда можно взять дешевую. И под ту и под другую все делается за пару вечеров. Броузер с статическим сайтом показать много ресурсов не надо.
Какая страна ДНС? Телек от Xiaomi Mi4A 32″ стоит в любом магазине 12 тыс. Ты где видел монитор такой же диагонали за такую же сумму? Разрешение под планируемые нужды более чем достаточно.
Я уже не говорю про телеки диагональю 55″. Что SmartTV, что не SmartTV — цена практически не отличается.
Телевизер кажет поганую картинку при его размерах. Предназначен для сидения в 3 метрах. Если ты за монитором только кину смотришь и игрули гоняешь — тебе норм, а работу работать не реально.
Если пару вечеров,я бы взял малинку и сделал так https://youtu.be/wdaBi33nd3k?t=308
К тому же телек обычно рассчитан на пару часов непрерывной работы, а монитор может работать круглосуточно.
Малинка это за час. Но стоит она дороже обычной андроидной коробки.
Смотря какая яркость у ТВ. Если можно выкрутить в нормальное тусклое значение — норм. Я, например, уже посчитал сколько мне нужно — 55″. С 2.5м нормально будет и текст ковырять, и кинцо смотреть.
На виртуальную машину поставили Android и попробовали произвести настройку без root прав. Попытались воссоздать ситуацию, если бы это был SmartTV на Android.
Из Google Play Market установили Firefox и AutoStart_no_root. Firefox успешно стартует. Но есть нюансы.
Не удалось перевести Firefox в полноэкранный режим. Не удалось в Firefox включить разрешение автозапуска медиа, хотя в настройках Firefox («Параметры» -> «Дополнительные» -> «Медиа» -> «Разрешить автозапуск» == «Разрешить автозапуск») автозапуск медиа включен.
Есть какие нибудь идеи? Может быть есть какие то расширения/плагины, которые в состоянии помочь? Или может следует воспользоваться другим браузером?
Всем заранее спасибо.
В качестве браузера нашел Full Screen Browser. В отличии от Firefox — он замечательно запускается в полноэкранном режиме. Но он не умеет «autoplay=1».
Найдутся еще идеи?
Писать самому приложение, которые при запуске сделает как надо. Скорее всего это будет очень не дорого или почти бесплатно.
Но, идея есть еще веселее: ищи б/у ТВ приставки Т2 с андроидом старым или свистки, на которые можно какой libre elec поставить.
Бери дешевый Raspberry Pi и можешь выбирать любой телик. И не придется гадать заработает ли твоя идея на SmartTV.
У тебя какой бюджет?
На Алике подешевели андроидные приставки, которые можно поковырять. От 2000р…
Идея №2: Лыжа/Самс и самому писать приложение, которое запустится с флешки? :-))
К сожалению, топикастер не писатель. И опять же — проблема с автозапуском написаного приложения.
Это запасной вариант
Смысл покупать Android-приставку, если телек тоже с Android?
Так у тебя ТВ уже есть или еще не куплен?
Так как телеков без SmartTV уже не продается (а те, что продаются — нифига не дешевле), то выбор не большой — WebOS, Гнумус, Android или неизвестные прошивки от неизвестных производителей.
На WebOS задуманное точно нельзя сделать. Раньше можно было. Но после обновления прошивки — возможность тонкой настройки пропала вовсе.
Гнумус я не щупал. Но знатоки сказали, что там все так же грустно.
Покупать неизвесное — такое себе решение.
Остаются телеки на Android. Сегодня дали на тест один Mi 4A 32. Попробуем сделать то же, что сделали на виртуалке.
Покупать Android приствки к телеку, на котором то же есть Android — не вижу смысла.
На виртуалке все задуманое почти получилось:
Без использования root прав добились запуска браузера в полноэкранном режиме с нужной страничкой. Не получилось только пока заставить браузер корректно обрабатывать «autoplay=1».
Если хотя бы это же получиться сделать на Mi 4A 32 — то выбор предрешен. Остальное доделаем с помощью «соплей», «костылей» и «синей изоленты».
Ты вот из-за аргумента, что телеков без SmartTV уже нет, отбросил вариант с отдельным устройством, но при этом сузил свой выбор до только с Android. А что если без него можно с аналогичными характеристиками найти дешевле, и это покроет разницу с отдельным девайсом. К тому же девайс не будет зависеть от более дорогого телевизора, их можно менять и сочетать как угодно, и тебе вообще не нужно будет думать о телевизоре, оставь этот выбор клиенту, а просто настрой как тебе удобно одну модель устройства.
С raspberry pi или аналогом к тому же можно легко решить простые вещи, старт браузера полноэкранный режим, к тому же браузер полноценный, можно удаленно подключатся, можно будет расширить для других потребностей, например проигрывать ролики, подключаться к nfs, samba,ftp…, настроить звуковое оповещение или запустить какой-нибудь сервис.
Вариант из моей практики, использовал для электронной очереди. Ставил ratpoison или stumpwm, запускал страницу в браузере в нужном окне(нужно при конфигурации когда один комп и много телевизоров или мониторов), есть утилиты для эмуляции нажатия на клавиатуру или даже мыши. Подключаться можно по vnc или spice. Можно вообще сделать загрузку по сети или сделать VDI. То есть работать с полноценными ОС всегда лучше, чем надеяться на огрызок в телевизоре.
Использовать телевизор с функцией SmartTV. Web-страничку открывать встроенным браузером.
что мешает сделать простенькую апк с вебвью и поставить ее в автозагрузку? установить apk в android tv можно и без рут прав.
ТС делал поправку, что не погроммист. Я его в этом поддерживаю.
Написать для Андрюши, это не в «дельфях» формочку нашлёпать. К большому сожалению «непрограммистов».
Кстати да, современные средства разработки настолько усложнились, что если 20 лет назад формошлёпить можно было без надрыва мозга, то теперь просто руки опускаются.
Так я тоже делал. Правда использовал не телевизор+миникомп, а моноблок. Они в тот момент не дорого стоили. Но цены подросли в несколько раз (на удивление).
Такой вариант тоже рассматриваю. И в некоторых точках без него не обойтись.
И да — обсуждаемое решение будет использоваться как информационное табло как для расписания приёма, так и для СУО.
Вот только с СУО может быть загвоздка. Многие МиниПК идут на процессорах ARM. А некоторые СУО (а мы гос учреждение, и жрем то, что спустят сверху) имеют в своем составе бинарники only_x86. Вот дилема… Так что, для таких отдельных точек будем использовать миниПК на x86.
Но если хотя бы в некоторых местах можно обойтись без миниПК, то лучше обойтись без миниПК.
Источник