判断网络连接是否可用并设置网络连接

    private boolean isNetworkAvailable(Context con) {
        ConnectivityManager cm = (ConnectivityManager) con
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (cm == null)
            return false;
        NetworkInfo netinfo = cm.getActiveNetworkInfo();
        if (netinfo == null) {
            Toast.makeText(getApplicationContext(), "网络连接失败", 1).show();
            return false;
        }
        if (netinfo.isConnected()) {
            
                        return true;
        }
        return false;
    }

返回false就是网络连接失败

返回true就是网络连接正常

以上代码可以在应用的初始化页面进行操作,为了增加用户体验,在跳转初始化页面之后弹出设置打开网络的提示框,点击联网,跳转到连接网络的页面进行设置,代码如下:

import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class NetWorkingCheck {
    NetworkInfo info;// 网络测试
    Context context;
    String str;
    public static boolean B=false;
    public NetWorkingCheck(Context context,String str) {
        this.str=str;
        this.context=context;
    
    }
    public void chek(){
        ConnectivityManager manager = (ConnectivityManager) context
                
                .getSystemService(str);

        info = manager.getActiveNetworkInfo();
        if (info == null) {
            B=true;
            AlertDialog.Builder builder = new Builder(context);
            builder.setMessage("网络连接失败,请连接您的网络!");
            builder.setTitle("提示");
            builder.setPositiveButton("联网",
                    new DialogInterface.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                            
                            context.startActivity(new Intent(
                                    android.provider.Settings.ACTION_SETTINGS));
                        }
                    });
            builder.setNegativeButton("取消",
                    new DialogInterface.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                            SysApplication.getInstance().exit();
                            dialog.dismiss();
                            
                        }
                    });
            builder.create().show();

        }
        
    
    }

}

然后在主页面进行调用

//连接网络

NetworkInfo info;
 // 服务意图
 Intent service_it;

在onCreate()的方法里调用如下

String ser = CONNECTIVITY_SERVICE;
        NetWorkingCheck netw = new NetWorkingCheck(this, ser);

        netw.chek();
        
        if (NetWorkingCheck.B) {
            
            NetWorkingCheck.B = false;
            
        } else {
            // 注册广播
            IntentFilter filter = new IntentFilter();
            filter.addAction("com.cn.WelcomeService.receiver");
            registerReceiver(receiver, filter);
            //requestMethod();

        }

方法外

    // 广播接收器
    BroadcastReceiver receiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals("com.cn.WelcomeService.receiver")) {
                stopService(service_it);
                

            }

        }

    };

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        if (receiver != null) {
            //unregisterReceiver(receiver);
        }
        super.onDestroy();
    }

到此点击联网按钮,即可跳转到设置网络连接的页面。

http://blog.csdn.net/justoneroad/article/details/6990278

posted @ 2013-09-17 14:12  BetterMan-  阅读(548)  评论(0编辑  收藏  举报