Получение MCC и MNC для оператора на blackberry - PullRequest
3 голосов
/ 17 августа 2011

Я пытаюсь получить MCC и MNC для устройства BlackBerry. Я использую этот код:

int code = RadioInfo.getCurrentNetworkIndex();
int mcc = RadioInfo.getMCC(code);
int mnc = RadioInfo.getMNC(code);
String mccS = Integer.toString(mcc);
String mncS = Integer.toString(mnc);

Я получаю значения, но при поиске правильных значений в Интернете я обнаружил, что MCC и MNC отличаются от тех, которые я получил в этом коде. Например, для оператора alfa в Ливане я должен получить:

Mcc = 415 и MNC = 1

Я получаю:

Mcc = 1045 и MNC = 1

Почему это происходит? Это правильный способ получить MCC и MNC? Заранее спасибо

Ответы [ 3 ]

7 голосов
/ 17 августа 2011

вы получите mcc, используя

String mcc = Integer.toHexString(RadioInfo.getMCC(RadioInfo.getCurrentNetworkIndex()));
3 голосов
/ 26 августа 2011

По моему опыту на ББ довольно грязно.Основываясь на экспериментах в разных сетях и устройствах, мы используем

// manual says MCCs can be identified as either 260 or 26F; actually for us it is decimal so we convert it to hexa
// this replaceAll "f" stuff is strange, but seems to work: MNC==1F becomes 1 which nicely matches RadioInfo.getMNC(RadioInfo.getCurrentNetworkIndex());
int mcc =  Integer.parseInt(TextUtils.replaceAll(Integer.toHexString(GPRSInfo.getCellInfo().getMCC()),"f", ""));  
2 голосов
/ 17 августа 2011

Вам необходимо преобразовать число.

MNC и MCC будут возвращены в виде десятичных чисел, тогда как MCC и MNC будут перечислены в виде шестнадцатеричных чисел.Например, смартфон BlackBerry, работающий в мобильной сети AT & T®, вернет MCC = 784 (шестнадцатеричный 310) и MNC = 896 (шестнадцатеричный 380).

http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/1467358/How_To_-_Determine_the_MCC_and_MNC_of_the_current_network.html?nodeid=1467359&vernum=0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...