Прочетете мобилния доставчик от телефона

Използването на новия ми телефон с Android създаде малък проблем: живея в държава А, но моят мобилен оператор е от държава Б, защото просто е по-евтино. Що се отнася до тарифите за мобилни телефони, моята страна не е чужда страна за държава B. Въпреки това трябва да активирам роуминг на данни в моя телефон с Android. Проблемът е, че също съм доста често в държава C и всеки път трябва да изключвам роуминга на данни.

Затова си помислих да напиша малко приложение, което деактивира роуминга на данни, ако не съм в държава A или B и го активира в противен случай.

Първият ми опит беше да определя местоположението с помощта на GPS, но това е доста безполезно, защото ще трябва да изчислявам за всяка координата дали е в разрешения диапазон. Така че мисля, че по-доброто решение би било да се прочете от телефона текущия доставчик и ако този доставчик не е в белия списък (който е дефиниран от мен), роумингът на данни е изключен.

Знаете ли други подходи? И как мога да получа името на текущия доставчик? И как програмно да деактивирате роуминга на данни?


person Community    schedule 04.07.2010    source източник


Отговори (2)


Можете да използвате TelephonyManager:

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

Някои от неговите методи, които могат да бъдат полезни за вашия случай:

tm.getNetworkCountryIso();
tm.getNetworkOperator();
tm.getNetworkOperatorName();
tm.getSimCountryIso();
tm.getSimOperator();
tm.getSimOperatorName();
person Jan S.    schedule 05.07.2010

Можете ли да използвате обратното геокодиране? Нещо като Nominatim? Просто изпратете GPS координатите и проверете държавата, в която се намирате.

От друга страна, този пример показва как можете да получите името на оператора, към който телефонът ви е свързан в момента.

Що се отнася до изключването на роуминга на данни, изглежда, че въвеждането на невалидни данни за APN върши работа.

person npinti    schedule 04.07.2010
comment
Android има вградени помощници за геокодиране, вижте това developer.android.com/intl /de/reference/android/location/ - person Pentium10; 04.07.2010
comment
Мислех за това и би било наистина хубаво, но проблемът е, че винаги трябва да имам активиран GPS приемник. По различни причини не искам това. - person RoflcoptrException; 04.07.2010
comment
Не е необходимо да имате активиран GPS, можете да получите координати от вашата мрежа или WIFI. - person Jan S.; 04.07.2010