Можно ли включить или отключить функцию автоповорота приложением?

17

Мне надоело включать автоповорот каждый раз, когда я использую Google Maps для навигации. Я не знаю, почему это не просто автоматически, как приложения, такие как Youtube.

Есть ли способ, которым я могу включить автоповорот ТОЛЬКО для карт Google, а не для любого другого приложения.

Есть ли приложение, которое сделает это или каким-то образом запрограммирует его в Tasker?

Дисковод
источник
@Firelord: да, обычно я нахожусь в портретном режиме, но когда я хочу использовать Google Maps Navigation, я хочу, чтобы он был в автоматическом режиме. Использование карт Google в автоповороте было бы приемлемо, если вы не можете изолировать навигационную часть.
дисковод

Ответы:

22

Это решение требует, чтобы Tasker был установлен и включен. Протестировано на Android 4.2.1, 4.4.2, 5.0.2 и 5.1.1.

  1. Создать профиль с приложения → Карты
  2. Создайте действие в разделе « Задача» вышеуказанного профиля как + → «Показать» → «Показать автозапуск» и установите для него значение « Вкл» .
  3. Включить профиль и Tasker.

Откройте Карты и сориентируйте свое устройство в альбомном режиме, Карты будут следовать за вами. Закройте Карты и устройство вернется к Портрету.

Наслаждайтесь!


ИЛИ

Изменить начало: 06.06.2015

Есть способ заставить систему перейти в ландшафтный режим, изменив значение в settings.db. (Проверено на Android 4.2.1, требуется рут только при этом редактировании.)

  1. Создать профиль с Приложения → Карты .
  2. Создайте действие под Задачей вышеупомянутого профиля как+ Код» → «Выполнить оболочку» и введите следующие данные:

    • Команда :settings put system user_rotation 1
    • Проверьте использование Root .
  3. Создайте другой профиль с обратным приложением → Карты .
  4. Создайте действие в разделе « Задача» вышеуказанного профиля как « + Код» → «Выполнить оболочку» и введите следующие данные:

    • команда :settings put system user_rotation 0
    • Проверьте использование Root .
  5. Включить оба профиля и Tasker.

Карты теперь будут автоматически переходить в ландшафтный режим независимо от ручной ориентации вашего устройства. Как только вы закроете его, устройство вернется в портретный режим. (Обратите внимание, что в OP отключена функция автоповорота, поэтому она должна работать.)

Это изменение предназначено для таких пользователей, как я, которым на медленных устройствах приходится ждать, пока приложение будет следовать их ориентации. :)

Наслаждайтесь!

ИЛИ

Недостатком последнего метода является то, что на некоторых устройствах приложение сначала открывается в портретном режиме, а затем принудительно переключается в ландшафтный режим. Однако приложение можно напрямую запустить в ландшафтном режиме с помощью ярлыка приложения. Tasker позволяет, и мы будем использовать это.

  1. Перейдите в панель запуска по умолчанию → Виджеты и выберите Ярлык задач .
  2. Выберите Новое задание → назовите его.
  3. Создайте действие как + → Код → Запустить Shell и введите следующие данные:

    • Команда :settings put system user_rotation 1
    • Проверьте использование Root .
  4. Создайте другое действие как +Приложение → Запустить приложение → выберите Карты .
  5. Чтобы изменить значок ярлыка, коснитесь квадратного значка 3x3 (в нижней части окна « Ярлык задач» ) и выберите значок.
  6. Теперь вы увидите ярлык со значком, выбранным на шаге 4, и именем, выбранным на шаге 2.
  7. Создайте профиль в Tasker с помощью приложения → Карты .
  8. Создайте действие в разделе « Задача» вышеуказанного профиля как « + Код» → «Выполнить оболочку» и введите следующие данные:

    • Команда :settings put system user_rotation 0
    • Проверьте использование Root .
  9. Включить оба профиля и Tasker.

Теперь наслаждайтесь принудительным авто-режимом!

Редактировать закрыто: 06.06.2015


Для новичков в Tasker

  1. Запустите Tasker. (Обратите внимание, что, как только вы закончите что-то менять в Tasker, один раз нажмите кнопку «Назад». Tasker изменит / закроет активное окно и сохранит настройки.)
  2. На вкладке ПРОФИЛИ нажмите +Приложение → выберите КартыНовая задача. → назовите что-нибудь и нажмите правый значок.

    Некоторые версии Android могут попросить вас включить службу специальных возможностей Tasker. Сделайте это, следуя инструкциям там, и вернитесь в Tasker.

    На этом шаге будет создан профиль, который будет запускаться всякий раз, когда пользователь запускает Карты.

  3. Теперь мы находимся под именованным заданием (внутри вкладки ЗАДАЧИ). Нажмите +Показать → Показать автоповорот → выберите Onниже Установить .

    Здесь мы создаем действие, которое будет выполнено после запуска профиля.

  4. Вернитесь на главный экран Tasker, и вы увидите профиль с именем приложения Карты и отмеченным как Вкл .
  5. Сверните Tasker, и вы увидите его значок на панели уведомлений. Это скажет No active profile. Сообщение изменится, как только вы запустите Карты.
  6. Хорошо, запустите Карты и увидите магию. Вы ориентируете свое устройство, и Карты будут делать то же самое. Вы закроете Карты, и устройство вернется в Портретный режим.
  7. Вы всегда можете остановить это поведение, отключив или удалив профиль в Tasker. Вы также можете скрыть значок уведомления Tasker через его настройки.

Наслаждайтесь картами сейчас!

Повелитель огня
источник
приятель, это именно то, что я был после. ура за это!
дисковод
3
Мне стыдно, Повелитель Огня! Обычно я приглашаю Таскера играть. На этот раз я задумал другое приложение, и пользователям Tasker (таким как я) это даже не понадобилось. Таким образом, вы определенно заработали +1 от меня :) И я все же постараюсь привести мой альтернативный ответ, так как Tasker а) не свободен и б) часто слишком подавляющим для новичков;)
Иззи
@ Иззи Спасибо! И я с нетерпением жду (как всегда) элегантного решения для каждого из вас. Причина, по которой я не стал расширять шаги Tasker, заключается в том, что OP знает о Tasker. Тем не менее, это ошибка с моей стороны, так как будущий читатель может не знать о ноу-хау Tasker . Угадайте, я написал , как это для легкого следующего. :)
Повелитель огня
Нет критиков для вас (хотя я согласен, что более подробные шаги могут быть полезны для других пользователей , я понимаю, почему они здесь не нужны). Я хлопнул мою голову не подумав о том :)
Иззи
1
Вот это да! Недостаток! Этот ответ не может не сработать , так почему он получил отрицательный голос? Расскажите, пожалуйста, уважаемый downvoter.
Повелитель огня
5

Если вы рутированы (и, вероятно, не используете lollipop), то вы также можете использовать xposed module App Settings .

Откройте модуль, найдите и откройте Карты, перейдите в раздел « Ориентация » и выберите «Автоповорот». Это заставит его автоматически вращаться.

Яскаранбир Сингх
источник
Функции выглядят многообещающе, но есть ли способ узнать, как этот модуль заставляет приложение оставаться в одном режиме? Если только я могу эмулировать это в Tasker, его можно сохранить от рута, или в настройках может потребоваться root. ИДК!
Повелитель огня
1
Извините, что нужно изучить его исходный код (чего у меня нет), поэтому я не могу сказать, как именно он работает: / Кстати, вот исходный код для него -> repo.xposed.info/module/de.robv.android .xposed.mods.appsettings :)
Яскаранбир Сингх
1
+1 По сравнению с моим ответом «Принудительный автоповорот» довольно сложный, но он как бы сбил температуру процессора . ;)
Повелитель огня
3

В дополнение к решению Tasker от Firelord (которое я предпочитаю всем остальным, упомянутым в этом посте - но Tasker а) не бесплатное и б) часто немного подавляющее, особенно для новичков), и настройкам приложений Jaskaranbir (например, Tasker , Xposed часто немного слишком много для некоторых), существует третий вариант, называемый PerApp . Признано, что он некоторое время не обновлялся, но его было бы проще использовать. До JellyBean (<4.1) для настройки поворота экрана даже не требовался root. Также есть несколько других настроек, так что вы можете посмотреть на них.

Иззи
источник
Именно из-за того, что многие такие приложения не обновляются с 2013 года, я попросил у OP его устройство и версию Android, чтобы можно было найти хорошие рекомендации. Угадайте, OP уже доволен Tasker. :) // Тем не менее, я могу заставить приложение в ландшафтном режиме через Tasker? Я посмотрел на AndroidManifest.xmlКарты, но в IDT я увидел что-то полезное.
Повелитель огня
1
Мне известно, что ОП предпочитает решение Tasker (как и я). Мой ответ был всего лишь дополнением для будущих посетителей, ищущих «что-то простое» :) И нет, я не играл с ориентацией в Tasker, поэтому не могу сказать. Не стесняйтесь проверить мою коллекцию ресурсов Tasker, возможно , есть некоторые инструкции или дополнения :)
Izzy
PerApp не работает для меня (Android Marshmallow)
март
3

Вы можете использовать приложение под названием Set Orientation от "Eyes-Free Project". Он не требует корня и может заставить любое приложение вращаться в любой ориентации, а также только в альбомной и альбомной ориентации на основе датчика. Его легкий и бесплатный. Он доступен в магазине Google Play.

Редактировать: вместо «Пранав Пандей» использовать Rotation - Orientation Manager . Он полностью совместим с Lollipop, бесплатен и не требует рута. Это приложение также имеет настройки для каждого приложения, которых не было в предыдущем приложении.

PSP
источник
+1. «Установить ориентацию» не отвечает требованию вопроса, потому что она обеспечивает ориентацию всей системы. С другой стороны, «Rotation - Orientation manager» хорошо справляется с работой для каждого приложения. Тем не менее, это не было гладко на моем устройстве (старое устройство), но выполняет свою работу.
Повелитель огня
1

Бесплатная версия MacroDroid также может справиться с этой задачей, хотя я все же предпочитаю решение с использованием Tasker .

  1. Установите и запустите MacroDroid .
  2. Нажмите « Добавить макрос» → «Запуск приложения» / «Закрыто» → «Запуск приложения» → «ОК» → выберите приложение (я) для автоматического поворота → « ОК» .
  3. В разделе « Добавить действия» нажмите « Автоповорот вкл. / Выкл.» → «Автоповорот вкл.» → « ОК» → «Продолжить».
  4. Игнорировать Добавить ограничения → продолжить и назвать макрос как Auto Rotate On.
  5. Создайте другой макрос, используя « Добавить макрос» → «Запуск приложения» / «Закрыто» → «Приложение закрыто» → «ОК» → выберите приложение (я), которое вы выбрали на шаге 2 → « ОК» .
  6. В разделе « Добавить действия» нажмите « Автоповорот вкл. / Выкл.» → «Автоповорот выкл.» → «ОК» → «Продолжить».
  7. Игнорировать Добавить ограничения → продолжить и назвать макрос как Auto Rotate Off.

Вот и все. Функциональность достигнута, и вы можете проверить ее, запустив и закрыв приложения, выбранные вами на предыдущих этапах.

Повелитель огня
источник
1

Бесплатная версия AutomateIt также делает свою работу.

  1. Установите и запустите AutomateIt.
  2. В блоке « Мои правила» нажмите « Добавить правило» → «Триггер состояния приложений» → в разделе « Приложение» коснитесь значков объектива и выберите свои приложения → Далее .
  3. На вкладке « Действие » нажмите « Включить / отключить поворот экрана» → «Включить поворот экрана» → «Далее» → «Нет» → сохранить правило.
  4. Создайте другое правило из блока « Мои правила », нажав « Добавить правило» → «Триггер состояния приложений» → в разделе « Приложение» коснитесь значков объектива и выберите приложение (я) → снимите флажок « Приложение активировано» → « Далее» .
  5. На вкладке « Действие » нажмите « Включить / отключить поворот экрана» → «Отключить поворот экрана» → «Нет» → сохранить правило.

Вот и все. Функциональность достигнута, и вы можете проверить ее, запустив и закрыв приложения, выбранные вами на предыдущих этапах.

Повелитель огня
источник
1

И Tasker даже позволяет вам добавлять условные выражения, например, если у меня такой дисплей, делайте это, что угодно. Исходя из этого, я придумал собственное решение, которое может показаться немного запутанным, но оно работает для меня. Поскольку мое устройство не имеет root-прав, команды с командным кодом, для которых требуется root, все равно не будут работать.

Однако с помощью цикла if else (он может быть уменьшен еще больше, так как изначально я добавил некоторый дополнительный код отладки), вы можете просто установить AutoRotate на основе значения Orientation. Таким образом, вы сохраняете эти два значения в двух переменных, называемых ROTATE и DISPLAY, и в начале цикла if вы проверяете DISPLAY с помощью регулярного выражения (я должен был сделать это, потому что по какой-то причине значение ориентации продолжало прыгать между ландшафтным и ландшафтно-обратным, поэтому это регулярное выражение заботится обоим):

% DISPLAY ~ R пейзаж (. *)?

Если это желаемая настройка, то в этом цикле if или else вы можете установить AutoRotate на Off . Кроме того, я также установил плагин Tasker под названием AutoInput, который позволяет мне заблокировать кнопки «домой» и «назад», чтобы выйти, я могу нажать другую кнопку, которая вызывает все мои открытые окна, и просто закрыть приложение Adobe Acrobat, которое является триггером для этого. задача.

Так что большой Yay! для Tasker. И да, я знаю, что немного опоздал на вечеринку, ну да ладно :)

Исаак
источник