android中检测网络连接状态简单总结
来源:互联网 发布:最近什么网络歌曲好听 编辑:程序博客网 时间:2024/06/04 20:00
相应几乎没有不跟网络打交道的android应用,那么在实际中就需求检测手机是否有网络连接,甚至需要判断是何种方式连接,这样能给用户带来更好的体验和一些使用指导,下面给出一些常用的判断,如果要知道是否有网络、以及是采用wifi连接的还是3G连接的,调用下面对应方法模型就OK了,代码如下:
TestNetworkActivity:
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;@Overrideprotected 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;}@Overridepublic void onClick(View v) {if (v == checkBtn) {netText.setText(isNetConnected() + "");wifiText.setText(isWifiConnected() + "");net3gText.setText(is3gConnected() + "");gpsText.setText(isGpsEnabled() + "");}}}
布局xml:
<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>
记得加上相应权限~
附上图片结果:
- android中检测网络连接状态简单总结
- android中检测网络连接状态简单总结
- android中检测网络连接状态简单总结
- 4.2.2.6 android中检测网络连接状态简单总结
- Android 检测网络连接状态
- Android 检测网络连接状态
- Android 检测网络连接状态
- Android 检测网络连接状态
- Android 检测网络连接状态
- Android 检测网络连接状态
- android:检测网络连接状态
- android-检测网络连接状态 - 随心
- Android中如何简单检测网络是否连接
- 检测网络连接状态
- 检测网络连接状态
- android检测网络状态
- android 检测网络状态
- android网络状态检测
- ios利用Reachability确认网络环境3G/WIFI
- <The Paradigms of Programming> by Robert W.Floyd, the lecture on Turing award in1979
- 常见的Python 运行错误信息
- 检测字符串的中英文
- org.hibernate.HibernateException: No Hibernate Session bound to thread
- android中检测网络连接状态简单总结
- 让div布局轻松居中的方法
- iOS中使用 Reachability 检测网络
- 在Go包里添加C代码并且不使用CGO(不需要gcc)
- 黑马程序员-自学笔记-面向过程编程(骑士飞行棋)
- Leetcode Merge Two Sorted Lists
- 整体布局注意
- 求偶数之取模运算(%)与位运算(&)速度之比较
- Leetcode Climbing Stairs