當我覆蓋上面提到的功能,並記錄CellLocation,收到以下值機器人:PhoneStateListener:onCellLocationChanged
[425,56301,-1]
當我周圍有點漫遊,上述值變化到
[425,56302,-1]
和[425,56303,-1]
這些值代表什麼?我認爲56301
是CellId。其他兩個是什麼?
當我覆蓋上面提到的功能,並記錄CellLocation,收到以下值機器人:PhoneStateListener:onCellLocationChanged
[425,56301,-1]
當我周圍有點漫遊,上述值變化到
[425,56302,-1]
和[425,56303,-1]
這些值代表什麼?我認爲56301
是CellId。其他兩個是什麼?
由於CellLocation可以是GsmCellLocation或CdmaCellLocation,所以您必須查看這些類。
在你的情況,你使用GsmCellLocation,其 「的toString()」 的一個實例是這樣實現的:
@Override
public String toString() {
return "["+ mLac + "," + mCid + "," + mPsc + "]";
}
,我們可以得出這樣的結論:
關於LAC
位置區域是其在蜂窩網絡中限定減少網絡中的信令業務的邏輯實體。總之,位置區域是一組單元。每個位置區域由LAC標識。
當您四處移動時,您的手機正在使用不同的基站。手機總是知道它可以使用哪個基站,因爲手機經常測量信號電平。例如:如果您處於單元格A的範圍內,然後移開,並且某個新單元格的範圍更好,則您的手機會立即注意到這一點。但它不應該通知網絡有關這個事實,因爲它會產生大量的信令數據(服務小區經常被改變)。
另一方面,當有人試圖給你打電話時會發生什麼?網絡必須通知您的手機。但它不知道手機在哪裏。那麼它可以向每個基站發送一條消息並通過無線電廣播它,但是這又會是一個巨大的信令流量。所以網絡必須知道這裏的電話是。
所以,我們有兩股力量在這裏:
位置區域是一種在這裏找到良好平衡的方法。
thanx。:)。順便說一句,你從哪裏得到的代碼?這樣我也可以在需要時查看它。 –
它位於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
thanx很多.. :) –