Reely Prefer Network: выберите мой собственный сетевой провайдер, как только он станет доступен (из кода)

Я живу у границы и работаю в другой стране. Поэтому я выбрал своего собственного поставщика услуг в качестве любимого. Тем не менее, я замечаю, что он придерживается провайдера до тех пор, пока это возможно. Поэтому, когда я начинаю с моей страны, я держу свою сеть, даже когда я пересекаю границу, однако, когда я иду наоборот, она будет поддерживать внешнюю сеть, даже когда моя любимая сеть уже доступна. Я знаю это, потому что, когда я хочу вручную выбрать его, он доступен из списка.

Теперь я хотел бы создать приложение, которое автоматически будет искать мою предпочтительную сеть, когда она будет роумироваться, каждый раз, когда она подключается к другой ячейке. Теперь я понимаю, что ранее я мог бы прослушать местоположение ячейки с помощью широковещательного приемника, но теперь это невозможно. (Какая жалость) И я читал из этого: Программное подключение к другим сетевым операторам Кажется, что я не смог выбрать другого поставщика из приложения по соображениям безопасности. (По крайней мере, с задокументированными вызовами api).

Тем не менее, меня не волнует публичный api или нет, потому что я не намерен распространять это в Android Market. Это просто приложение, облегчающее мою жизнь, вероятно, откроет исходный код, чтобы другие люди могли использовать его, если захотят.

Я мог бы использовать некоторые подсказки, чтобы заставить это работать. Так что, возможно, есть и другие вещи, которые транслируются, для которых я могу слушать, например, уровень сигнала или что-то в этом роде, это запустило бы мой код, чтобы проверить, могу ли я переключать сеть. Я бы предпочел, чтобы это работало как широковещательный приемник, я также прочитал, что при использовании местоположения ячеек из Службы я не получаю обновления, когда экран выключен, что в этом случае побеждает цель.

И потом, я был бы очень признателен за некоторые подсказки/указатели относительно того, как искать в Android-источнике вещи, которые я могу использовать для автоматического выбора сети.

Ответы

Ответ 1

Так как кажется, что вы путешествуете по предсказуемому пути между сетями, считаете ли вы использование возможности ProximityAlert для LocationManager? Вы определяете круг вокруг некоторого местоположения, и когда ваше устройство входит или выходит из этого круга, вещание выдается вашему приемнику.

Я написал раздел об этом в Pro Android 3, глава 17. Там пример приложения на нашем веб-сайте:

http://www.androidbook.com/projects

Нажмите на ссылку для zip файлов проекта, затем найдите ProAndroid3_Ch17_Maps.zip

Ниже приведены инструкции по загрузке и импорту из приведенной выше ссылки. Проект внутри zip называется ProximityAlertDemo. Это очень просто, просто чтобы показать оповещение о близости, но не обязательно включать его в приложение или службу. Боюсь, у меня нет ответа на вопрос о том, как переключать сети из кода. На данный момент предложение начать работу на экране настроек выглядит наилучшим.