Android 检测网络是否连接

权限:

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

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

代码如下:

package com.example.nettest;

import android.net.ConnectivityManager;

import android.net.NetworkInfo.State;

import android.os.Bundle;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.ComponentName;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.view.Menu;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity {

private ConnectivityManager manager;

private TextView tv;

StringBuffer sb = new StringBuffer(256);

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv = (TextView) findViewById(R.id.textView1);

checkNetworkState();

}

/**

* 检测网络是否连接

*

* @return

*/

private boolean checkNetworkState() {

boolean flag = false;

// 得到网络连接信息

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

// 去进行判断网络是否连接

if (manager.getActiveNetworkInfo() != null) {

flag = manager.getActiveNetworkInfo().isAvailable();

}

if (!flag) {

setNetwork();

} else {

isNetworkAvailable();

}

tv.setText(sb.toString());

return flag;

}

/**

* 网络未连接时,调用设置方法

*/

private void setNetwork() {

Toast.makeText(this, "wifi is closed!", Toast.LENGTH_SHORT).show();

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("网络提示信息");

builder.setMessage("网络不可用,如果继续,请先设置网络!");

builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Intent intent = null;

/**

* 判断手机系统的版本!如果API大于10 就是3.0+ 因为3.0以上的版本的设置和3.0以下的设置不一样,调用的方法不同

*/

if (android.os.Build.VERSION.SDK_INT > 10) {

intent = new Intent(

android.provider.Settings.ACTION_SETTINGS);

} else {

intent = new Intent();

ComponentName component = new ComponentName(

"com.android.settings",

"com.android.settings.WirelessSettings");

intent.setComponent(component);

intent.setAction("android.intent.action.VIEW");

}

startActivity(intent);

}

});

builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

}

});

builder.create();

builder.show();

}

/**

* 网络已经连接,然后去判断是wifi连接还是GPRS连接 设置一些自己的逻辑调用

*/

private void isNetworkAvailable() {

State gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)

.getState();

State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)

.getState();

if (gprs == State.CONNECTED || gprs == State.CONNECTING) {

Toast.makeText(this, "gprs is open! ", Toast.LENGTH_SHORT).show();

sb.append("\ngprs is open! ");

} else {

sb.append("\ngprs is closed! ");

}

// 判断为wifi状态下才加载广告,如果是GPRS手机网络则不加载!

if (wifi == State.CONNECTED || wifi == State.CONNECTING) {

Toast.makeText(this, "wifi is open! ", Toast.LENGTH_SHORT).show();

loadAdmob();

sb.append("\nwifi is open! ");

} else {

sb.append("\nwifi is closed! ");

}

}

/**

* 在wifi状态下 加载admob广告

*/

private void loadAdmob() {

Toast.makeText(getApplicationContext(), "ad is loding..", 1).show();

sb.append("\nad is loding...");

}

}

Android 检测网络是否连接

时间: 2024-10-13 09:58:29

Android 检测网络是否连接的相关文章

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

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

Android开发检测网络是否连接

原来写的有一个(调戏糖宝)的客户端,没有加网络连接判断,在没有网络的情况下,会程序死掉.所以添加以下的代码,在程序运行的时候做下判断.解决这种因网络没有连接运行出错的问题. /**     * 检测网络是否可用     *      * @param context     *            上下文     * @return true 表示有网络连接 false表示没有可用网络连接     */    public static boolean isNetworkAvailable(C

Android检测网络状态,判断当前网络是否可用

用户手机当前网络可用:WIFI.2G/3G网络,用户打开与不打开网络,和是否可以用是两码事.可以使用指的是:用户打开网络了并且可以连上互联网进行上网. 检测当前网络是否可用,代码如下: /** * 检测当的网络(WLAN.3G/2G)状态 * @param context Context * @return true 表示网络可用 */ public static boolean isNetworkAvailable(Context context) { ConnectivityManager

android 判断网络是否连接

package com.liucanwen.baidulocation.util; import android.app.Activity; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.widget.Toast; public class NetworkStatus { public boolean ne

Android判断网络是否连接

<!-- 配置文件判断网络是否连接 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Cont

Android判断网络是否连接,跳转到设置页面以及判断连接的是什么网络

如果拟开发一个网络应用的程序,首先考虑是否接入网络,在Android手机中判断是否联网可以通过ConnectivityManager 类的isAvailable()方法判断,首先获取网络通讯类的实例 ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);  ,使用cwjManager.getActiveNetworkInfo().isAvailable(

Android 检测网络与GPS是否可用

1.网络是否连接(包括Wifi和移动网络) //是否有可用网络      private boolean isNetworkConnected() {          ConnectivityManager cm =                   (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);          NetworkInfo network = cm.getActive

android 检测网络是否可用

/**     * 检测网络是否可用     *      * @return     */    public boolean isNetworkConnected() {        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);        NetworkInfo ni = cm.getActiveNetworkInfo();        re

Android检测网络是否可用并获取网络类型

在类中使用getSystemService的时候需要这样进行使用:1. public class JajaMenu extends Activity { public static JajaMenu instance; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.init(); instance=this; } //获取实例 public