您的位置:首页 > 理论基础 > 计算机网络

判断项目的网络是否可用然后打开设置面板

2016-04-20 20:22 447 查看
步骤一.

package com.example.network;  

  

import android.content.Context;  

import android.net.ConnectivityManager;  

import android.net.NetworkInfo;  

  

public class NetworkUtil {  

  

    /** 

     * 检查网络是否可用 

     *  

     * @param context 

     * @return 

     */  

    public static boolean isNetworkAvailable(Context context) {  

  

        ConnectivityManager manager = (ConnectivityManager) context  

                .getApplicationContext().getSystemService(  

                        Context.CONNECTIVITY_SERVICE);  

  

        if (manager == null) {  

            return false;  

        }  

  

        NetworkInfo networkinfo = manager.getActiveNetworkInfo();  

  

        if (networkinfo == null || !networkinfo.isAvailable()) {  

            return false;  

        }  

  

        return true;  

    }  

      

}  

步骤二.

package com.example.network;  

  

import android.os.Bundle;  

import android.app.Activity;  

import android.app.AlertDialog;  

import android.app.AlertDialog.Builder;  

import android.content.ComponentName;  

import android.content.Context;  

import android.content.DialogInterface;  

import android.content.Intent;  

import android.util.Log;  

import android.view.Menu;  

import android.widget.Toast;  

  

public class MainActivity extends Activity {  

  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.activity_main);  

    }  

  

    @Override  

    protected void onStart() {  

  

        Log.i("MainActivity", "onStart");  

  

        if (!NetworkUtil.isNetworkAvailable(this)) {  

            showSetNetworkUI(this);  

        } else {  

            Toast.makeText(this, "网络可用...", 0).show();  

        }  

  

        super.onStart();  

    }  

  

    @Override  

    protected void onResume() {  

  

        Log.i("MainActivity", "onStart");  

  

        super.onResume();  

    }  

  

    /* 

     * 打开设置网络界面 

     */  

    public void showSetNetworkUI(final Context context) {  

        // 提示对话框  

        AlertDialog.Builder builder = new Builder(context);  

        builder.setTitle("网络设置提示")  

                .setMessage("网络连接不可用,是否进行设置?")  

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

  

                    @Override  

                    public void onClick(DialogInterface dialog, int which) {  

                        // TODO Auto-generated method stub  

                        Intent intent = null;  

                        // 判断手机系统的版本 即API大于10 就是3.0或以上版本  

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

                            intent = new Intent(  

                                    android.provider.Settings.ACTION_WIFI_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");  

                        }  

                        context.startActivity(intent);  

                    }  

                })  

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

  

                    @Override  

                    public void onClick(DialogInterface dialog, int which) {  

  

                        dialog.dismiss();  

                    }  

                }).show();  

    }  

  

    @Override  

    public boolean onCreateOptionsMenu(Menu menu) {  

        // Inflate the menu; this adds items to the action bar if it is present.  

        getMenuInflater().inflate(R.menu.main, menu);  

        return true;  

    }  

  

}  
步骤三.
在获得到json解析完之后在发message呈现adapter之前的时候   判断得到的entity是否为空  不为空的话往下走   
new Thread(){
public void run() {
NBANewsBiz biz=new NBANewsBiz();
String json=biz.getNBAresult();
NBAnewsJson parser=new NBAnewsJson();
NBAnews entity = parser.parser(json);
if (entity!=null) {

Message msg=Message.obtain();
msg.obj=entity;
handler.sendMessage(msg);
}
};
}.start();


记得在 Manifest文件中加入以下权限

[html] view
plain copy

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

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

步骤4  对于选择的网络进行的一个判断是wifi还是mobile

private int NetworkState() {
ConnectivityManager conn=(ConnectivityManager) this.getSystemService(this.CONNECTIVITY_SERVICE);
NetworkInfo wifi = conn.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = conn.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable()) {
Toast.makeText(this, "wifi链接成功", Toast.LENGTH_SHORT).show();
return 1;
}else if(mobile.isAvailable()){
Toast.makeText(this, "您连接的是mobile网络", Toast.LENGTH_SHORT).show();
return 2;
}else{
return 0;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息