2013-07-31 80 views

回答

7

由於CellLocation可以是GsmCellLocationCdmaCellLocation,所以您必須查看這些類。

在你的情況,你使用GsmCellLocation,其 「的toString()」 的一個實例是這樣實現的:

@Override 
public String toString() { 
    return "["+ mLac + "," + mCid + "," + mPsc + "]"; 
} 

,我們可以得出這樣的結論:

  • 425 - LAC - 位置區號 - 這標識了您的終端當前所在網絡的區域。 Cellural網絡由小區組成(即,一個基站處理一個小區),並且這些小區被分組到位置區域中。每個區域都有它的標識符 - LAC。
  • 56302 - CID - 小區ID - 爲您的設備提供服務的小區的標識符。
  • -1 - PSC - 主擾碼 - 僅限UMTS。

關於LAC

位置區域是其在蜂窩網絡中限定減少網絡中的信令業務的邏輯實體。總之,位置區域是一組單元。每個位置區域由LAC標識。

當您四處移動時,您的手機正在使用不同的基站。手機總是知道它可以使用哪個基站,因爲手機經常測量信號電平。例如:如果您處於單元格A的範圍內,然後移開,並且某個新單元格的範圍更好,則您的手機會立即注意到這一點。但它不應該通知網絡有關這個事實,因爲它會產生大量的信令數據(服務小區經常被改變)。

另一方面,當有人試圖給你打電話時會發生什麼?網絡必須通知您的手機。但它不知道手機在哪裏。那麼它可以向每個基站發送一條消息並通過無線電廣播它,但是這又會是一個巨大的信令流量。所以網絡必須知道這裏的電話是。

所以,我們有兩股力量在這裏:

  1. 電話不應該通知網絡每次CID變化(由於信令業務量巨大)
  2. 網絡不應該尋找一個電話在每個細胞(同樣,信號量巨大)。

位置區域是一種在這裏找到良好平衡的方法。

  1. 只有當位置區域(LAC)更改時,每次CID更改時,電話都不會通知網絡。
  2. 網絡不會在某個國家的每個小區中「尋呼」電話,而只會在給定位置區域的每個小區中「尋呼」電話。
+0

thanx。:)。順便說一句,你從哪裏得到的代碼?這樣我也可以在需要時查看它。 –

+0

它位於Android源代碼中的GsmCellLocation.java中。如果你不想在本地保存android源代碼,你可以隨時在網絡的不同位置找到它,比如[this](http://grepcode.com/file/repository.grepcode.com/java/ext/ com.google.android/android/4.2.2_r1/android/telephony/gsm/GsmCellLocation.java#GsmCellLocation.toString%28%29)。 – kamituel

+0

thanx很多.. :) –