android中检測网络连接状态简单总结

相应差点儿没有不跟网络打交道的android应用,那么在实际中就需求检測手机是否有网络连接。甚至须要推断是何种方式连接,这样能给用户带来更好的体验和一些使用指导,以下给出一些经常使用的推断。假设要知道是否有网络、以及是採用wifi连接的还是3G连接的。调用以下相应方法模型就OK了。代码例如以下:

TestNetworkActivity:

?


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

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

package

com.home.testnetwork; 

  

import

java.util.List; 

  

import

android.app.Activity; 

import

android.content.Context; 

import

android.location.LocationManager; 

import

android.net.ConnectivityManager; 

import

android.net.NetworkInfo; 

import

android.os.Bundle; 

import

android.view.View; 

import

android.view.View.OnClickListener; 

import

android.widget.Button; 

import

android.widget.EditText; 

  

public

class

TestNetworkActivity
extends

Activity
implements

OnClickListener { 

    private

Button checkBtn; 

    private

EditText netText; 

    private

EditText wifiText; 

    private

EditText net3gText; 

    private

EditText gpsText; 

  

    @Override

    protected

void

onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.main); 

        checkBtn
= (Button) findViewById(R.id.main_btn_check); 

        checkBtn.setOnClickListener(this); 

        wifiText
= (EditText) findViewById(R.id.main_et_wifi); 

        net3gText
= (EditText) findViewById(R.id.main_et_3g); 

        gpsText
= (EditText) findViewById(R.id.main_et_GPS); 

        netText
= (EditText) findViewById(R.id.main_et_net); 

    

  

    /**

     *
检測网络是否连接

     

     *
@return

     */

    private

boolean

isNetConnected() { 

        ConnectivityManager
cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

        if

(cm !=
null)

            NetworkInfo[]
infos = cm.getAllNetworkInfo(); 

            if

(infos !=
null)

                for

(NetworkInfo ni : infos) { 

                    if

(ni.isConnected()) { 

                        return

true

                    

                

            

        

        return

false

    

  

    /**

     *
检測wifi是否连接

     

     *
@return

     */

    private

boolean

isWifiConnected() { 

        ConnectivityManager
cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

        if

(cm !=
null)

            NetworkInfo
networkInfo = cm.getActiveNetworkInfo(); 

            if

(networkInfo !=
null

                    &&
networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { 

                return

true

            

        

        return

false

    

  

    /**

     *
检測3G是否连接

     

     *
@return

     */

    private

boolean

is3gConnected() { 

        ConnectivityManager
cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

        if

(cm !=
null)

            NetworkInfo
networkInfo = cm.getActiveNetworkInfo(); 

            if

(networkInfo !=
null

                    &&
networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { 

                return

true

            

        

        return

false

    

  

    /**

     *
检測GPS是否打开

     

     *
@return

     */

    private

boolean

isGpsEnabled() { 

        LocationManager
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

        List<String>
accessibleProviders = lm.getProviders(
true); 

        for

(String name : accessibleProviders) { 

            if

(
"gps".equals(name))

                return

true

            

        

        return

false

    

  

    @Override

    public

void

onClick(View v) { 

        if

(v == checkBtn) { 

            netText.setText(isNetConnected()
+
""); 

            wifiText.setText(isWifiConnected()
+
""); 

            net3gText.setText(is3gConnected()
+
""); 

            gpsText.setText(isGpsEnabled()
+
""); 

        

    


布局xml:

?


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

<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

  

    <Button 

        android:id="@+id/main_btn_check"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="检測网络"

/> 

  

    <LinearLayout 

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

  

        <TextView 

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="网络是否连接:"

/> 

  

        <EditText 

            android:id="@+id/main_et_net"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_marginLeft="10dp"

            android:enabled="false"

/> 

    </LinearLayout> 

  

    <LinearLayout 

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

  

        <TextView 

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="wifi是否连接:"

/> 

  

        <EditText 

            android:id="@+id/main_et_wifi"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_marginLeft="10dp"

            android:enabled="false"

/> 

    </LinearLayout> 

  

    <LinearLayout 

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

  

        <TextView 

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="3G是否连接:"

/> 

  

        <EditText 

            android:id="@+id/main_et_3g"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_marginLeft="10dp"

            android:enabled="false"

/> 

    </LinearLayout> 

  

    <LinearLayout 

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

  

        <TextView 

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="GPS是否打开:"

/> 

  

        <EditText 

            android:id="@+id/main_et_GPS"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_marginLeft="10dp"

            android:enabled="false"

/> 

    </LinearLayout> 

  

</LinearLayout>

时间: 2024-10-17 03:51:13

android中检測网络连接状态简单总结的相关文章

Android编程 获取网络连接状态 及调用网络配置界面

获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityManager 类,用于网络连接状态的检测. Android开发文档这样描述ConnectivityManager的作用: Class that answers queries about the state of network connectivity. It also notifies applic

android设备判断网络连接状态

android开发中,在做网络请求前判断当前网络连接状态有时很有必要.本文将介绍如何获取android设备当前网络连接状态! 所需权限(AndroidManifest.xml文件中添加): <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> Java代码(MainActivity.java文件) package com.example.androidtest; import a

Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面

http://www.mobiletuts.me 获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityManager  类,用于网络连接状态的检测. Android开发文档这样描述ConnectivityManager 的作用: Class that answers queries about the state of network connectivi

Android编程获取网络连接状态及调用网络配置界面

获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityManager 类,用于网络连接状态的检测. Android开发文档这样描述ConnectivityManager的作用: Class that answers queries about the state of network connectivity. It also notifies applic

检測网络连接状态

#import "AFNetworkReachabilityManager.h" - (BOOL)isNetWorkReachable{ __block CGRect rect = _nonNetworkLabel.frame; //这里的声明前面加__block.作用是在块里能够改动rect的值: AFNetworkReachabilityManager *afNetworkReachabilityManager = [AFNetworkReachabilityManager sha

怎样检查Android网络连接状态

在发送任何HTTP请求前最好检查下网络连接状态,这样可以避免异常.这个教程将会介绍怎样在你的应用中检测网络连接状态. 创建新的项目 1.在Eclipse IDE中创建一个新的项目并把填入必须的信息.  File->New->Android Project 2.创建新项目后的第一步是要在AndroidManifest.xml文件中添加必要的权限. 为了访问网络我们需要 INTERNET 权限 为了检查网络状态我们需要 ACCESS_NETWORK_STATE 权限 AndroidManifest

Android判断网络连接状态

需要相关权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.INTERNET"/

android检测网络连接状态示例讲解

网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置 Android连接首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml): 复制代码 代码如下: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="a

Android中判断网络连接是否可用及监控网络状态

Android中判断网络连接是否可用及监控网络状态 作者: 字体:[增加 减小] 类型:转载 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android中判断网络连接是否可用及监控网络状态,感兴趣的朋友可以参考下 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"