Простой способ переключения между соединением 2G и 3G

TL;DR

Обычно мое устройство заблокировано на «только 2G» по нескольким причинам:

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

Но время от времени я мог использовать 3G:

  • некоторая область с плохим покрытием 2G (по данным)
  • периодическое «использование в Интернете», например, с навигационным приложением, просмотром «еще немного» в Интернете или установкой чего-либо из

В таких случаях я считаю нецелесообразным переходить на страницу настроек и изменять их вручную, даже если это делается с помощью какого-либо «ярлыка», размещенного на . Предпочтительно, я хочу иметь возможность автоматизировать это с помощью , например, автоматически переключаться при входе / выходе из «плохой зоны покрытия» или когда одно из этих приложений находится на переднем плане (оба условия покрываются Tasker, просто «действие» отсутствующий). Я тщательно проверил наш сайт здесь, в и даже провел обширный поиск в Google, но все, что оказалось, было либо ярлыком, либо патчем ядра для определенных ПЗУ, оба для меня не годятся.

Отсюда мой...

Вопрос:

Есть ли простой способ переключения между режимами 2G/3G? Как сказано, ярлыки на страницу настроек не в счет (поэтому может кто-нибудь порекомендовать виджет переключения 2g/3g? не вариант). Критерии розыска включают в себя:

  • не требуется более одного нажатия (предпочтительно без нажатия, чтобы вызвать действие, см. ниже)
  • большой плюс (и любимое пожелание): возможность запуска через
  • не зависит от конкретных ПЗУ (должно работать со ПЗУ )
  • желательно без , но варианты, требующие рута, меня вполне устроят
  • меня тоже устраивают :)
Вы почти наверняка должны быть укоренены, чтобы делать то, что вы просите; как и GPS, я не верю, что несистемные приложения имеют возможность переключать это.
Какой у тебя телефон? В моем Tasker есть переключатель 2G/3G (в категории сетевых действий при добавлении задачи), но он отключен на моем LTE S3.
@HarshaK Я не буду рутирован, но мои устройства есть :) Вот почему я написал, что «варианты, требующие рута, меня все равно устроят», хотя решение, не требующее рута, было бы полезно для более широкой аудитории. Я хорошо знаю, что решение без полномочий root маловероятно, но, эй, я думал так же, когда задавал свой вопрос о «полном резервном копировании устройств без полномочий root», и получил большой сюрприз. Так почему бы не снова? :)
@TreborRude То же самое для меня, хотя устройство рутировано (похоже, сам Tasker этого не использует). Текущий список устройств: см. мой профиль :) Самым важным банкоматом будет LG Optimus 4X , но опять же, если решение доступно для более широкой аудитории, тем лучше.
Я не понимаю, почему виджет не принимается? Switch pro имеет кнопку, позволяющую делать именно то, что вы хотите, одним нажатием, вам не нужно быть root, насколько я знаю, и это не зависит от ПЗУ. Боюсь, что нет поддержки Tasker.
Я не говорил, что виджет «не принимается» — я сказал , что ярлыки на страницу настроек не подходят. Не смущайтесь формулировкой связанного заголовка вопроса, взгляните на него :) Решение в одно касание — это компромисс (для меня, так что не стесняйтесь делать его ответом — это, безусловно, правильное решение и все может кому пригодится!). Я предпочитаю что-то, что можно автоматизировать с помощью Tasker . Тем не менее, мое внимание , возможно, немного сместилось за это время, хотя...

Ответы (4)

С установленным модулем Xposed и Gravity Box выпадающая строка состояния может быть настроена даже на стандартном ПЗУ (конечно, она должна быть рутирована).

У меня есть Nexus 5 с прошивкой 4.4.4, и вот как он выглядит:введите описание изображения здесь

Установив их, можно провести двумя пальцами сверху вниз и просто коснуться последней плитки, показанной на изображении как «3G». Хотя это почти не соответствует первому требованию использования не более одного нажатия, технически это все еще выполняется, поскольку вы прокручиваете вниз и используете одно касание.введите описание изображения здесь

Эта плитка переключается между состояниями 3G, 2G, 2G3G. Существует небольшая задержка, чтобы увидеть плитку уровня сигнала, чтобы отразить состояние как «H +» или «E».

Установив Gravity Box, я также смог добавить дополнительные плитки, такие как «Факел вкл/выкл», «Блокировка автоповорота» и т. д., которых не было в стандартном ПЗУ.

Обновление: спасибо тем , кто был достаточно jsenлюбезен, чтобы поделитьсяintent переключением между 2G и 3G с помощью Tasker и Gravity Box (что подразумевает Xposed framework и рутирование).

Чтобы избежать мертвой ссылки в будущем, содержание этого взлома Tasker выглядит следующим образом:

Send Intent [
Action: gravitybox.intent.action.CHANGE_NETWORK_TYPE
Cat: None
Mime Type:
Data:
Extra: networkType:1
Extra:
Package:
Class:
Target: Broadcast Receiver]

networkType enum values are: 
0: WCDMA Preferred 
1: GSM only <-- This would be "2G" on GSM networks
2: WCDMA only <--WCDMA is "3G" on GSM networks. You may know it as HSPA
3: GSM auto (PRL)
4: CDMA auto (PRL)
5: CDMA only <-- This would be "2G" on CDMA networks
6: EvDo only <-- EvDo is "3G" on CDMA networks
7: GSM/CDMA auto (PRL)
8: LTE/CDMA auto (PRL)
9: LTE/GSM auto (PRL)
10: LTE/GSM/CDMA auto (PRL)
11: LTE only
12: "unknown"

В моем офисе очень плохой сигнал 2G, из-за которого мой звонок очень часто сбрасывается. Поэтому я переключался на 3G, когда добирался до офиса. Я создал задачу входа с именем «Включить 3G» и задачу выхода с именем «Включить 2G», которая просто отправляет намерение, как указано выше. В состоянии Tasker «Сотовая связь рядом» я могу попросить Tasker включить 3G, когда я нахожусь рядом с офисом, и переключиться обратно на 2G, когда ухожу.

Сделанный! Спасибо за обновление: теперь это подходит на 100%, так как часть Tasker может делать это автоматически. Вы можете добавить, что задачу Tasker также можно использовать в качестве ярлыка на рабочем столе для ручного переключения, когда это необходимо.
Обратите внимание, что в CM11 сетевой переключатель уже включен по умолчанию. К сожалению, не рекомендуется использовать GravityBox с этим ПЗУ (по крайней мере, насколько я читал), поэтому автоматическое переключение через указанное намерение там недоступно (если только кто-то не может добавить соответствующее намерение для этого случая).

Я искал автоматическое переключение сети в течение многих лет и всегда думал, что такое поведение возможно только с использованием Cyanogen (или аналогичных) ПЗУ. Во всяком случае, я недавно нашел несколько тем на XDA, которые предполагают, что это может быть неправдой.

Во-первых, кажется, что в Sony Devices можно настроить систему так, чтобы отображалось переключение 2G/3G:

http://www.xda-developers.com/android/serajr-power-toggles-brings-settings-to-the-small-app-world/

И есть также другая тема, которая показывает вам, как «открыть» любое ПЗУ (даже стандартное), чтобы стало возможным переключение 2G/3G. Я не совсем понимаю процесс, но, насколько я вижу, он должен работать даже с Tasker:

http://forum.xda-developers.com/showthread.php?t=1731187

Однако все методы требуют рутирования телефона, что, я думаю, неизбежно.

Если я правильно понимаю, первое ограничено устройствами Sony, а второе требует кодирования, исправления и компиляции кода системного приложения. К сожалению, не совсем подходит для конечных пользователей.

Беспроблемный и простой способ - установить программу запуска, которая позволяет запускать «задачи», такие как Holo Launcher . Просто нажмите «Рабочий стол» -> «Ярлыки» -> «Действия» -> «Настройки». Оказавшись в настройках, вам, возможно, придется покопаться, чтобы выбрать правильный. Это немного сложно, но как только вы закончите, все готово. Я не пробовал это на своем новом Android, но отлично работает на моем старом устройстве GB.

В лаунчер Nova можно добавить виджет -> Действия -> Телефонные услуги -> Настройки сети.