2013-07-23 5 views
9

cell-idとlocationのエリアコードを取得するコードが大量に見つかりました。以下のコードを使用してcell-idとlocationエリアコードを取得しました。Androidで正しいセルIDと地域の市外局番を取得するにはどうすればよいですか?

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
GsmCellLocation cellLocation = (GsmCellLocation) telephonyManager.getCellLocation(); 

int cid = cellLocation.getCid(); 
int lac = cellLocation.getLac(); 

問題は、私はエアテル-SIMカードを使用する場合、それは正常に動作し、セルID = 4331とLOC = 610を与え、です。しかし、私がrelience-simカードを使用すると、間違った結果のcell-id = 11541とloc = 18823が返されます。どうすればこの問題を解決できますか?

+0

こんにちは、私はURLのコードを使用してhttp://sunil-android.blogspot.in/2013/01/convert-celllocation-to-real-location.html位置を取得し、エアテルのためにはうまく動作しますがそれがうまくいかない場合はうまくいかない。私が気づいているように、私が気になる場合に得られるロケーションエリアコードとセルIDが間違っていることを意味します。どんな助け? – User10001

+0

正しいセルIDを表示する多くのアプリケーションがありますが、私のコードは3g SIMカードでは機能しません。 – User10001

+0

'cid = cellLocation.getCid()&0xffff;'を使ってあなたのrelience-simの結果はどうなりますか? – sschrass

答えて

0

ソリューションは、次のスレッドで強調表示されています。要するにAndroid: CellID not available on all carriers?

あなたがgetCid()とき0xffffと3Gネットワ​​ーク内から取得数をマスクする必要があります。

GsmCellLocation cellLocation = (GsmCellLocation)telm.getCellLocation(); 

new_cid = cellLocation.getCid() & 0xffff; 
new_lac = cellLocation.getLac() & 0xffff; 

希望

+0

私はすでにこれを試しています。 – User10001

0

セルIDとLAC IDを助け、あなたが別のセルを取得しますので、あなたは異なるネットワークの二つの異なるのSIMを使用していることを述べてきたように、ネットワークに基づいて異なるされています。スニペットは、次のとおりこれらは同じではありません。 1つのオペレータのセルIDは、異なるネットワークの2つの異なるタワーが使用され、それに応じて両方のIDが割り当てられているため、他のネットワークとは異なるためです。

関連する問題