2011-11-10 60 views
6

Android提供以下方法來確定網絡運營商: http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkOperatorName()Android如何識別CDMA網絡上的運營商?

然而,即使文檔特別說:

返回當前註冊運營商的字母名稱。 可用性:僅當用戶註冊到網絡時。 CDMA網絡上的結果可能不可靠(使用getPhoneType()來確定是否在CDMA網絡上)。

的問題是,我們需要一個可靠的方式檢測載波,所以我們可以找出流量來源。有沒有人有類似的問題,如果是的話,什麼是最好的解決方案?

+0

好,使用中的鏈接提供的方法,如果返回null或無效的結果使用getPhoneType()。 – Jack

+0

getPhoneType會告訴我們我們在CDMA網絡上,但是我們需要識別**我們在哪個** CDMA網絡上(即哪個載波) – rbanikaz

回答

-1

您認爲這可能是Google拉動cdma支持的先驅嗎?在框架內玩,或者找到你另一個遊樂場是我聽到谷歌說的。那麼,以及載體應用程序被燒燬成爲ROM的事實有時會留下安全漏洞。 至於你的問題的一個可能的答案......你能從哪裏獲得信息? APN設置可能會告訴你,或者在build.prop中的已知載體行聲明可能會拉我可能需要的信息。 (我做愛好ROM)。再次,如果你實際檢查一個電話,承運人通常被打上標籤;)你從哪個有利位置拉動信息?

Rob

0

我目前正在爲這個問題尋找解決方案。根據這個thread可以使用CdmaCellLocation.getNetworkIdCdmaCellLocation.getSystemId。由於在德國沒有CDMA網絡,我無法檢查這是否工作...

2

我的手機在Verizon Wireless上。每天我都會開車經過我的手機正在漫遊和/或接收不良的地區。對於android使用腳本層,我將在下一週每10分鐘記錄一次調用getOperatorName()的結果。

another method可能工作在android.telephony.cdma API。那裏的文檔缺少可靠性免責聲明。您只會獲得網絡ID而不是名稱。不幸的是,這需要API等級5而不是1,如果這對你很重要。

記錄getOperatorName()方法的結果沒有什麼特別的。當我沒有服務時,它一直返回null,當我有服務時,它一直返回「Verizon Wireless」。我相信這不是很有幫助。

編輯:添加和修正。 添加 - 修正鏈接 的說明 - API級別5不是17

編輯2:測試結果

+0

歡迎使用堆棧溢出。鏈接時,嘗試在這裏添加重要部分到您的答案。 – Cezar

+0

對不起。我不太明白你的意思。你的意思是在其中的重要部分添加評論,還是應該包含更多信息來解釋我在答案中提出的鏈接? –

+0

沒問題。我通常喜歡在答案中看到refrerred鏈接中包含的信息的基本部分。有時可以以提問者可以實施解決方案的方式提供基本信息,而無需閱讀整個參考。如果您認爲情況並非如此,請不要擔心,並再次歡迎=) – Cezar