lac/ci值常用作基站定位,基站定位是指手機發射基站根據與手機的距離來計算手機座標地理位置的一種功能,基站定位一般應用於手機使用者。
lac:location area code 位置區碼 (移動通訊系統中),是為尋呼而設定的乙個區域,覆蓋一片地理區域,初期一般按行政區域劃分(乙個縣或乙個區),現在很靈活了,按尋呼量劃分。當乙個lac下的尋呼量達到乙個預警門限,就必須拆分。 為了確定移動臺的位置,每個gsmplmn的覆蓋區都被劃分成許多位置區,位置區碼(lac)則用於標識不同的位置區。乙個位置區可以包含乙個或多個小區,小區即為ci。
要使用基站定位介面,須在網路上找乙個解析。定位精度最終取決於當地基站的密度。城市大概50到150公尺,城郊大概100到300公尺,鄉村大概200到2000公尺,偏遠地區由於基站的密度太少,所以就會很差。
了解了其中的作用,就開始使用。第一步就是新增許可權。因為主要用於定位。所以所需要的許可權也都類屬與定位許可權。首先在androidmanifest.xml檔案裡新增許可權。
android:name
="android.permission.access_fine_location"
/>
android:name
="android.permission.access_coarse_location"
/>
android:name
="android.permission.access_location_extra_commands"
/>
因為各個運營商之間採用的技術不盡相同,所以獲取方式也不太一樣。國內三大運營商的獲取方式如下:
telephonymanager tel =
(telephonymanager)
getsystemservice
(context.telephony_service)
;celllocation cel = tel.
getcelllocation()
;int nphonetype = tel.
getphonetype()
;//移動聯通 gsmcelllocation
if(nphonetype ==
2&& cel instanceof
gsmcelllocation)}
}
telephonymanager tel =
(telephonymanager)
getsystemservice
(context.telephony_service)
;celllocation cel = tel.
getcelllocation()
;int nphonetype = tel.
getphonetype()
;//電信 cdmacelllocation
if(nphonetype ==
2&& cel instanceof
cdmacelllocation
)
在andorid上面要獲取手機網路資訊一般要呼叫telephonymanagerl類來獲取相關資訊。
enb e-utran node b 為lte系統中e-utran的組成部分
計算enb的方式是 ci = enb*256+cid
獲取telephonymanager + 獲取小區資訊
telephonymanager =
(telephonymanager)
getsystemservice
(telephony_service)
;// 先獲取小區資訊
// this method was deprecated in api level 23.
// use (@link getallcellinfo} which returns a superset of the information from neighboringcellinfo.
stringbuilder str =
newstringbuilder()
;//獲取小區資訊
list
cellinfolist = telephonymanager.
getallcellinfo()
;str.
("小區資訊:"
+"\n");
int index =0;
for(cellinfo cellinfo : cellinfolist)
str.
("timestamp:"
+cellinfo.
gettimestamp()
+"\n");
str.((
(cellinfolte)cellinfo)
.getcellidentity()
.tostring()
+"\n");
str.((
(cellinfolte)cellinfo)
.getcellsignalstrength()
.tostring()
+"\n");
}//獲取所有的cdma網路資訊
if(cellinfo instanceof
cellinfocdma
) str.
("timestamp:"
+cellinfo.
gettimestamp()
+"\n");
str.((
(cellinfocdma)cellinfo)
.getcellidentity()
.tostring()
+"\n");
str.((
(cellinfocdma)cellinfo)
.getcellsignalstrength()
.tostring()
+"\n");
}//獲取所有的gsm網路
if(cellinfo instanceof
cellinfogsm
) str.
("timestamp:"
+cellinfo.
gettimestamp()
+"\n");
str.((
(cellinfogsm)cellinfo)
.getcellidentity()
.tostring()
+"\n");
str.((
(cellinfogsm)cellinfo)
.getcellsignalstrength()
.tostring()
+"\n");
}//獲取所有的wcdma網路
if(cellinfo instanceof
cellinfowcdma
) str.
("timestamp:"
+cellinfo.
gettimestamp()
+"\n");
str.((
(cellinfowcdma)cellinfo)
.getcellidentity()
.tostring()
+"\n");
str.((
(cellinfowcdma)cellinfo)
.getcellsignalstrength()
.tostring()
+"\n");
} index++
;}
獲取手機的位置,實現定位
celllocation location = telephonymanager.
getcelllocation()
;if(location != null && location instanceof
gsmcelllocation
)else
if(location != null && location instanceof
cdmacelllocation
)
注意:getneighboringcellinfo ()已經被谷歌棄用
android獲取硬體資訊
1.獲取cpu型號 private static string getcpuname return array 1 catch filenotfoundexecption e catch ioexception e return null 2.獲取cpu核心數 private int getnumc...
Android 獲取ROM資訊
android 獲取rom資訊沒有統一的介面,需要事先知道配置檔案中的對應的值 1 開啟cmd視窗 2 輸入adb shell 再輸入getprop命令 3 得到配置資訊 查詢關於rom資訊對應的鍵,然後根據鍵找到值 例如小公尺rom對應的值為 ro.miui.ui.version.name v8 ...
Android 獲取基站資訊
android 基站分cdmacelllocation和gsmcelllocation,要根據不同的sim卡轉成不同的物件 telephonymanager tm telephonymanager getsystemservice context.telephony service int type...