android 判斷是否有網路連線

2021-08-21 17:34:54 字數 5021 閱讀 8248

1樓:八維教育

我們在做訪問的時候都得進行判斷是否連網。判斷連網也比較簡單,就用到了兩個類。connectivitymanager和networkinfo。

只要執行下面的**就可以了。12

345connectivitymanager connmgr = (connectivitymanager) context.getsystemservice(context.connectivity_service);

networkinfo networkinfo = connmgr.getnetworkinfo(connectivitymanager.type_wifi);

boolean iswificonn = networkinfo.isconnected();

networkinfo = connmgr.getnetworkinfo(connectivitymanager.type_mobile);

boolean ismobileconn = networkinfo.isconnected();

只要有一個連線就是有網,networkinfo就是網路的資訊。還有一種更簡便的判斷是否連網的方法。12

connectivitymanager connmgr = (connectivitymanager) context.getsystemservice(context.connectivity_service);

networkinfo networkinfo = connmgr.getactivenetworkinfo();

在一個就是監聽網路變化,就是設定一個廣播。

註冊廣播,監聽connectivitymanager.connectivity_action這個action12

3intentfilter filter = new intentfilter(connectivitymanager.connectivity_action);

receiver = new networkreceiver();

context.registerreceiver(receiver, filter);

再實現一個廣播類就可以了。這樣網路一變化,就會受到廣播,然後執行對應操作了。12

3456

7public class networkreceiver extends broadcastreceiver

}下面就是來說一下判斷手機網路的型別了,2g,3g,4g

關於網路型別,在得到networkinfo = connmgr.getnetworkinfo(connectivitymanager.type_mobile);這個後,確定是手機網路後,通過networkinfo.

getsubtype()會得到網路的型別,用networkinfo.getsubtypename()會得到網路的名字。

我們通過這個networkinfo.getsubtype()得到的型別來判斷當前是什麼網路。

其實,android的api中已經定義了各種網路狀態,不是在connectivitymanager裡面定義的,而是在telephonymanager裡面的定義的。通過不同的api版本的修改,目前增加到了14個狀態值:

下面是通過自己查資料,和看別人查資料實驗得來的。整理如下:12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

3738

3940

4142

4344

4546

4748

4950

5152

5354

5556

5758

5960

6162

6364

6566

6768

6970

7172

7374

7576

7778

7980

8182

8384

8586

--------------------added in api level 1---------------------

public static final int network_type_unknown

network type is unknown

constant value: 0 (0x00000000)

(不知道網路型別)

public static final int network_type_gprs

current network is gprs

constant value: 1 (0x00000001)

(2.5g)移動和聯通

public static final int network_type_edge

current network is edge

constant value: 2 (0x00000002)

(2.75g)2.5g到3g的過渡 移動和聯通

public static final int network_type_umts

current network is umts

constant value: 3 (0x00000003)

(3g)聯通

-----------------added in api level 4---------------------

public static final int network_type_cdma

current network is cdma: either is95a or is95b

constant value: 4 (0x00000004)

(2g 電信)

public static final int network_type_evdo_0

current network is evdo revision 0

constant value: 5 (0x00000005)

( 3g )電信

public static final int network_type_evdo_a

current network is evdo revision a

constant value: 6 (0x00000006)

(3.5g) 屬於3g過渡

public static final int network_type_1xrtt

current network is 1xrtt

constant value: 7 (0x00000007)

( 2g )

---------------------added in api level 5--------------------

public static final int network_type_hsdpa

current network is hsdpa

constant value: 8 (0x00000008)

(3.5g )

public static final int network_type_hsupa

current network is hsupa

constant value: 9 (0x00000009)

( 3.5g )

public static final int network_type_hspa

current network is hspa

constant value: 10 (0x0000000a)

( 3g )聯通

--------------------------added in api level 8-------------------------

public static final int network_type_iden

current network is iden

constant value: 11 (0x0000000b)

(2g )

--------------------------added in api level 9-------------------------

public static final int network_type_evdo_b

current network is evdo revision b

constant value: 12 (0x0000000c)

3g-3.5g

--------------------------added in api level 11------------------------

public static final int network_type_lte

current network is lte

constant value: 13 (0x0000000d)

(4g)

public static final int network_type_ehrpd

current network is ehrpd

constant value: 14 (0x0000000e)

3g(3g到4g的升級產物)

--------------------------added in api level 13---------------------------

public static final int network_type_hspap

current network is hspa+

constant value: 15 (0x0000000f)

( 3g )

如何判斷當前網路連線狀態

2樓:匿名使用者

為識別是因為第一次連線網路時沒有選擇工作網路 家庭網路 時按了取消 所以出現為識別 可以放心上網 一定要改的話 你刪掉網路配置 重新連線 在選擇 也可能你那時會勾選以後預設選擇哪種 那就預設那種了 這個沒關係的

是否有平板電腦(WIN7,android或ios系統)可以運

建議用x86架構的平板電腦.今後安裝使用與現行電腦一致.acer iconia tab w500是一款極好的,功能配置強大的平板電腦,採用了amd c50的apu.愛立順r116也不錯,處理器intel atom n450.優派viewpad 97i 3g版 也可以.處理器intel atom n5...

怎樣判斷小米有沒發黴,小米怎麼判斷是否黴變

小米亦稱粟米,古代叫禾。是穀子去殼後的產物,因其粒小,直徑約1毫米左右,因此得名。粟的營養價值很高,含豐富的蛋白質和脂肪和維生素,它不僅供食用,入藥有清熱 清渴,滋陰,補脾腎和腸胃,利小便 治水瀉等功效,又可釀酒。如果小米發生黴變後,其中的碳水化合物 維生素 無機鹽等營養素受到大量的分解破壞和流失,...

怎麼判斷自己是不是真的耳鳴?怎樣判斷是否有耳鳴?

如果在鞭炮響的時候震到了耳朵,應該及時到醫院耳鼻喉科就診,並檢查一下外耳道及鼓膜有沒有受到氣壓損傷,而避免爆震性耳聾的發生。如果耳朵有耳鳴,自己就能感覺到。怎樣判斷是否有耳鳴?耳朵或腦部是否聽見異常聲音。症狀起因。一 主覺性 非振動性 耳鳴。1 耳鼻咽喉科疾病 耳部疾病引起耳鳴最為常見。1 鼓部如中...