2011-08-17 4 views
3

ブラックベリーデバイスのMCCとMNCを取得しようとしています。私はこのコードを使用しています:ブラックベリーでオペレーターのMCCとMNCを取得する

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

私は、インターネット上の右の値を検索するときBYT、値を取得しています、私は、MCCとMNCは、私はこのコードで得られたものとは異なることがわかりました。レバノンでのオペレータアルファのための例えば、私が取得する必要があります。

クライアントセンター= 415とMNC = 1

私は取得しています:= 1045

MCCとMNC = 1

はなぜということですハプニング?これは、MCCとMNCを取得する正しい方法ですか?事前

答えて

7

のおかげで、あなたは、あなたが数を変換する必要があり

String mcc = Integer.toHexString(RadioInfo.getMCC(RadioInfo.getCurrentNetworkIndex())); 
+0

を使用し、私はそれまたはGPRSInfo.getMCC(のようなInteger.toHexString(GPRSInfo.getMCC())いくつか)が動作します使用する必要があります。私にお知らせください。 –

2

を使用して、MCCを取得します。

MCCとMCCは10進数で返されますが、MCCとMNCは16進数としてリストされます。たとえば、AT &T®モバイルネットワークで動作するBlackBerryスマートフォンは、MCC = 784(16進数310)およびMNC = 896(16進数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

3

それはBBにかなり厄介です。実験に基づいて、異なるネットワークとデバイスをaccross、我々は

// 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", "")); 
関連する問題