導航:首頁 > 手機網路 > android判斷手機網路

android判斷手機網路

發布時間:2022-09-04 09:49:13

㈠ android 判斷是否有網路連接

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

只要執行下面的代碼就可以了。

1
2
3
4
5

ConnectivityManager 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就是網路的信息。還有一種更簡便的判斷是否連網的方法。

1
2

ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();

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

注冊廣播,監聽ConnectivityManager.CONNECTIVITY_ACTION這個action

1
2
3

IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
receiver = new NetworkReceiver();
context.registerReceiver(receiver, filter);

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

1
2
3
4
5
6
7

public class NetworkReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("TAG", "intent============>>>>" + intent.toString());

}
}

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

關於網路類型,在得到networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);這個後,確定是手機網路後,通過networkInfo.getSubtype()會得到網路的類型,用networkInfo.getSubtypeName()會得到網路的名字。

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

--------------------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 )

㈡ Android中如何簡單檢測網路是否連接

許可權:

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

代碼:

/*
*判斷網路連接是否已開
*true已打開false未打開
**/
publicstaticbooleanisConn(Contextcontext){
booleanbisConnFlag=false;
ConnectivityManagerconManager=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfonetwork=conManager.getActiveNetworkInfo();
if(network!=null){
bisConnFlag=conManager.getActiveNetworkInfo().isAvailable();
}
returnbisConnFlag;
}


/*沒有網路跳轉到網路設置頁面
*打開設置網路界面
**/
(finalContextcontext){
//提示對話框
AlertDialog.Builderbuilder=newAlertDialog.Builder(context);
builder.setTitle("網路設置提示").setMessage("網路連接不可用,是否進行設置?").setPositiveButton("設置",newDialogInterface.OnClickListener(){

@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
//TODOAuto-generatedmethodstub
Intentintent=null;
//判斷手機系統的版本即API大於10就是3.0或以上版本
if(Build.VERSION.SDK_INT>10){
intent=newIntent(Settings.ACTION_WIRELESS_SETTINGS);
}else{
intent=newIntent();
ComponentNamecomponent=newComponentName("com.android.settings","com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
}
context.startActivity(intent);
}
}).setNegativeButton("取消",newDialogInterface.OnClickListener(){

@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
//TODOAuto-generatedmethodstub
dialog.dismiss();
}
}).show();
}

㈢ android 判斷當前是否有網路

NetworkInfo networkInfo = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()){
//有網路以及網路類型
if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI){
//wifi
}else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE){
//移動網路
}
} else {
//無網路
}

==希望能對你有用,望採納

㈣ 怎樣用手機測網速 安卓手機測網速的方法推薦

據了解,85%以上的年輕人都是低頭族,無論是坐車還是散步都離不開手機,於是手機網速就成為大家關注的問題了,那麼, 怎樣用手機測網速 呢?下面我們就來詳細介紹一下: 怎樣用手機測網速 以及安卓手機測網速的方法推薦?希望可以給你們一些幫助和啟示!

怎樣用手機測網速

一:怎樣用手機測網速---使用測速工具進行測速

1、要先上網下載一個專用的測速軟體,比如:在網路上搜索「網速測試」,便會出現很多軟體,要選擇口碑比較好的軟體下載。

2、等下載好之後,要進行安裝,然後打開測速軟體,再點擊「開始測速」按鈕,這樣就開始測速了。

3、等測速好之後,就顯示你當前的網速。

二:怎樣用手機測網速---使用下載件的測速功能進行測速

1、要先下載一個迅雷測速軟體,然後打開,再選擇「設置」按鈕,在彈出的菜單中選擇「網速測試」,進入測速頁面。

2、在測速頁面中,再點擊「開始測試」按鈕,進行網速的測試。

3、稍等片刻,網速結果就顯示出來了。

注意事項:

再測試時,它的結果並不是困定的,而是會根據環境而有所改變。此外,最好在有WiFi時在進行,以免流量超支給自己帶來麻煩。

三、怎樣用手機測網速---手機測試網速方法

1、在使用手機測試網速時要先下載speedtest應用,然後進行安裝,等好了之後,在進行測速或通過手機助手搜索網速測試應用。

2、然後下載安裝應用

3、等完成後進入手機界面,進入應用。

4、進入Speedtest應用之後,就能看到Begin Test或開始等字樣了,點擊開始測試網速即可。

5、等完成之後,進入頁面,就能看到當前網路的的PING值以及上行、下載速度了,再點擊表盤下方的"Restart Test"按鈕就能重新測速了。

注意事項:

有了測速軟體之後,就可以隨時隨地查看手機的網速狀況了。

文章總結: 怎樣用手機測網速 以及安卓手機測網速的方法推薦的相關知識就介紹到這里了,其實,手機測試網速的方法很簡單,只要下載好網速測試軟體,再根據軟體的提示一步一步完成操作,這樣就能了解手機當前的網速狀況了。

㈤ android 怎麼判斷網路狀態

獲取android系統的連接服務可判斷網路連接狀態,代碼如下
public class NetUtils{
public static boolean isNetworkConnected(Context context){
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] infos = cm.getAllNetworkInfo();
for(NetworkInfo info:infos){
if(info.isAvailable()&&info.isConnected()){
return true;
}
}
return false;
}
}

NetworkInfo的isAvailable()和isConnected()有以下5種狀態:
在WLAN設置界面
1,顯示連接已保存,但標題欄沒有,即沒有實質連接上:isConnected()==false,isAvailable()=true
2,顯示連接已保存,標題欄也有已連接上的圖標:isConnected()==true,isAvailable()=true
3,選擇不保存後:isConnected()==false,isAvailable()=true
4,選擇連接,在正在獲取IP地址時:isConnected()==false,isAvailable()=false
5,連接上後:isConnected()==true,isAvailable()=true

㈥ Android之判斷手機連接的網路類型是WIFI還是2G/3G/4G

wifi上網
不需要用到手機號碼的流量啊,有
wifi網路
資源肯定是用wifi好,但是沒有資源的情況只能用2G/3G的了,建議要用wifi的時候把手機網路關閉,避免wifi網路不穩定扣取了手機的流量。

㈦ 如何判斷Android手機當前是否聯網

通知欄可以看見,每個手機顯示方式不同,有的在信號格有上下箭頭標志,就是數據傳輸.有上網它會動.還有就是下拉通知欄的快捷設置可以看有沒有開數據.最通用的辦法就是打開設置-無線和網路-數據連接..看看有沒有打開.每個手機不同,方法也不同.希望能幫到你.

㈧ android 如何判斷網路是否能夠上網

實現步驟:
下面解決辦法來自於android學習手冊,android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載。排到第三個。
1、獲取ConnectivityManager對象
Context context = activity.getApplicationContext();
// 獲取手機所有連接管理對象(包括對wi-fi,net等連接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

2、獲取NetworkInfo對象
// 獲取NetworkInfo對象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

3、判斷當前網路狀態是否為連接狀態
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}

4、在AndroidManifest.xml中添加訪問當前網路狀態許可權
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

代碼如下:

public class ClassTestDemoActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (isNetworkAvailable(ClassTestDemoActivity.this))
{
Toast.makeText(getApplicationContext(), "當前有可用網路!", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "當前沒有可用網路!", Toast.LENGTH_LONG).show();
}
}

/**
* 檢查當前網路是否可用
*
* @param context
* @return
*/

public boolean isNetworkAvailable(Activity activity)
{
Context context = activity.getApplicationContext();
// 獲取手機所有連接管理對象(包括對wi-fi,net等連接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

if (connectivityManager == null)
{
return false;
}
else
{
// 獲取NetworkInfo對象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

if (networkInfo != null && networkInfo.length > 0)
{
for (int i = 0; i < networkInfo.length; i++)
{
System.out.println(i + "===狀態===" + networkInfo[i].getState());
System.out.println(i + "===類型===" + networkInfo[i].getTypeName());
// 判斷當前網路狀態是否為連接狀態
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}
}
}
}
return false;
}
}

㈨ android判斷網路是否連接

返回ture表示網路可用

// 檢測網路

public static boolean checkNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
NetworkInfo netWorkInfo = info[i];
if (netWorkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
} else if (netWorkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return true;
}
}
}
}
}

return false;

}

㈩ 如何判斷android手機當前是否聯網

下面的方法返回false表示網路不通

// 檢測網路
public static boolean checkNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
NetworkInfo netWorkInfo = info[i];
if (netWorkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
} else if (netWorkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return true;
}
}
}
}
}

return false;

}

閱讀全文

與android判斷手機網路相關的資料

熱點內容
廊坊市有哪些網路女歌手 瀏覽:90
安卓怎麼共享網路電腦 瀏覽:678
過生日用網路怎麼講 瀏覽:924
有線網路埠能直接連路由器嗎 瀏覽:945
當前網路異常下載中止什麼情況 瀏覽:675
蘋果提示網路不可用無法加入 瀏覽:759
蘋果12promax網路制式哪個好 瀏覽:364
5700交換機環形網路設置 瀏覽:443
隨身wifi信號網路能優化嘛 瀏覽:361
電腦網路認證不了原因 瀏覽:753
電腦wifi網路不安全怎麼辦 瀏覽:47
手機沒信號沒網路連接不上 瀏覽:405
移動網路不能進入小區 瀏覽:670
浴室沒有網路信號 瀏覽:314
網路安全競技選手 瀏覽:595
移動網路為啥測速是聯通節點 瀏覽:830
關於網路的作文比如手機電腦 瀏覽:513
網路上的師門是什麼意思 瀏覽:86
手機怎麼設置連接cmcc熱點網路 瀏覽:908
你心中的網路小說有哪些 瀏覽:948

友情鏈接