android電訊廠商和網路類型分析

來源:互聯網
上載者:User

android電訊廠商和網路類型分析

一些需求需要擷取電訊廠商和網路類型,下面對電訊廠商和網路類型做分析。

先拋出一些廢話的定義:

 

GSM:全球移動通訊系統Global System of Mobile communication就是眾所周知的GSM,是當前應用最為廣泛的行動電話標準。
CDMA:碼分多址(CDMA)是在數字技術的分支--擴頻通訊技術上發展起來的一種嶄新而成熟的無線通訊技術。
可見,這兩者是技術標準,和網路類型及制式無關。

 

進入正題。

1.擷取話機類型

這個可以通過方法TelephonyManager#getPhoneType來獲得,下面是傳回型別。

 

/**     * Returns a constant indicating the device phone type.  This     * indicates the type of radio used to transmit voice calls.     *     * @see #PHONE_TYPE_NONE     * @see #PHONE_TYPE_GSM     * @see #PHONE_TYPE_CDMA     * @see #PHONE_TYPE_SIP     */
常用話機類型就是GSM類型和CDMA類型,SIP是和VOIP相關的東西,平時不常遇到。

 

 

2.擷取電訊廠商

TelephonyManager#getSimOperator用於擷取SIM卡電訊廠商ID,比如移動是46002

TelephonyManager#getSimOperatorName方法擷取電訊廠商名字,比如移動是CMCC

TelephonyManager#getSimCountryIso擷取SIM卡國家,比如中國是cn

TelephonyManager#getSimState擷取SIM卡狀態

 

3.擷取網路類型

重點來了。

TelephonyManager#getNetworkType方法擷取網路類型。

想要確切的顯示出手機當前的網路,比如“聯通3G”,需要的就是這個。

在網上找了一些代碼,看見一些代碼在一些網路類型後面標明:“移動2G”,我只想說“呵呵”。

原因就是,從單一的網路類型是無法判斷這點的。

回到正題,開始分析傳回值。

 

1)NETWORK_TYPE_GPRS

GPRS是一種制式,相當於2.5G,它獨立於話機類型而存在,雖然移動是GSM話機,聯通是CDMA話機,但是他們都可以有這種制式,

拿移動2G舉例,我所在城市是EDGE網路。但是在之前,移動和聯通可能有同時使用GPRS的時候,

同時也不排除部分地區移動仍然部署了GPRS的可能性,所以比較不贊同在代碼後面標“移動2G”的這位前輩。

 

2)NETWORK_TYPE_EDGE

EDGE應該算是2.75G。據我所知,聯通好像沒有升級2G網路到這個制式。而移動當前是在用這個。

 

3)NETWORK_TYPE_UMTS

UMTS定義是一種3G行動電話技術,使用WCDMA作為底層標準,WCDMA向下相容GSM網路。

目前中國也就只有聯通了,這個確實可以唯一判斷電訊廠商及其網路類型。

 

4)NETWORK_TYPE_CDMA

CDMA的定義是一種技術標準,有其2代、2.5代、3代技術。被認為是3代移動技術的首選,包含的標準有

WCDMA、CDMA2000、TD-SCDMA。這裡CDMA指代CDMA2代技術標準的制式,中國電信在用。

 

5)NETWORK_TYPE_1xRTT

在CDMA2000中,通常被認為是2.5G或2.75G,速率只有其他3G的幾分之一,電信可能使用。

 

6)NETWORK_TYPE_EVDO_0、NETWORK_TYPE_EVDO_A、NETWORK_TYPE_EVDO_B

兩者都是CDMA2000標準中的版本,屬於3G,電信可能使用。

 

7)NETWORK_TYPE_HSDPA

一種通訊協定,建立在WCDMA上,相當於3.5G,聯通可能使用。

 

8)NETWORK_TYPE_LTE

對應准4G,各個電訊廠商都可能使用。

 

9)NETWORK_TYPE_GSM

這個值是隱藏的,值為16,暫時不知道什麼卡會出現。猜想應該是對應GSM標準的最早期制式,沒有驗證。

 

10)NETWORK_TYPE_TD_SCDMA

也是隱藏的,值為17,使用移動3G時是這個值。

 

結論:判斷哪個電訊廠商那種網路不應該只根據NetworkType判斷。

電訊廠商單獨擷取,而NetworkType可以進一步知道是2G還是3G。

其他中國不存在的制式就先不判斷了。

 

4.關於android版本相容

對於android版本低的裝置,不包含一些類型的定義,所以最好在自己的類中重新定義這些網路類型變數


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.