2012-05-16 81 views
4

我成功獲取了GsmCellLocation和相關的cid和lac信息,但服務小區的PSC(主擾碼)總是以初始值-1返回。 任何人都可以獲得服務細胞的真實PSC值?使用GsmCellLocation的getPsc()始終返回-1

telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
GsmCellLocation cellLocation = (GsmCellLocation) telephonyManager.getCellLocation(); 
psc = cellLocation.getPsc(); 
Log.d(TAG, "PSC = " + psc); 

我擁有所有必需的權限。我的鄰居列表也會返回空白,但目前這不是問題。

+0

請提供設備模型(任何Android版本),其中'getPsc()'返回正確的值。即使需要使用反射的解決方案也是受歡迎的。 –

+0

我可以確認cellLocation.getPsc()是在連接到UMTS的Nexus 4上報告的(使用上面的代碼)。也爲getNeighboringCellInfo。 –

回答

1

PSC僅適用於UMTS網絡。
檢查網絡類型getNetworkType如果它NETWORK_TYPE_UMTS,而不是NETWORK_TYPE_EDGE

+1

我知道這一點。在我測試過的設備上的** UMTS **網絡上,getPsc()總是返回「-1」。 –

+0

你有清單中的ACCESS_COARSE_LOCATION權限嗎? – pawelzieba

+0

是的,我確實有這個權限。 –

0

我已閱讀了這部作品在某些手機 - 谷歌Nexus手機就是其中之一。

我試着在我的Motorolla Razr上運行你的測試代碼 - 它返回-1。

通過查看Android源代碼(GsmServiceStateTracker.java),它看起來像這個功能是可選的,並且很可能沒有在許多手機上實現。您要查找的信息是作爲來自GSM調制解調器的未經請求的消息發送的,並且它沒有用於其他任何內容(據我所知可以從android源中看到),而不是從getPsc()返回的值。

我的意思是爲什麼執行它,如果你不必。

我也嘗試擴展您的測試代碼以獲取有關鄰近單元的信息,這些信息也可用於獲取PSC值。它不起作用,因爲用於獲取相鄰小區信息的at命令沒有在我的手機的GSM調制解調器中實現。

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
GsmCellLocation cellLocation = (GsmCellLocation) telephonyManager.getCellLocation(); 
Log.d(TAG, "cid = " + cellLocation.getCid()); 
Log.d(TAG, "lac = " + cellLocation.getLac()); 

int psc = cellLocation.getPsc(); 
Log.d(TAG, "PSC = " + psc); 

List<NeighboringCellInfo> neighCell = null; 
neighCell = telephonyManager.getNeighboringCellInfo(); 
for (int i = 0; i < neighCell.size(); i++) 
{ 
    NeighboringCellInfo thisCell = neighCell.get(i); 
    int CID = thisCell.getCid(); 
    int RSSI = thisCell.getRssi(); 
    int PSC = thisCell.getPsc(); 
    Log.d(TAG, " "+CID+" - "+RSSI + " - " + PSC); 
} 

如果你真的想找出手機實現這一點,你應該測試添加到some benchmark app並希望及時得到了一定的成果。

+0

你知道它是哪個版本的Nexus嗎? Nexus S/Galaxy Nexus/Nexus 7? –

+0

我懷疑這個功能可以在Nexus'手機上使用,而不是在平板電腦上使用,因爲它沒有電話功能。我沒有任何這些手機,所以我可以測試。 :( – wojciii

+0

有沒有一種方法可以從無線電日誌中獲取PSC?我只能在無線電日誌中看到LAC和CID。是否還打印了PSC? –