android网络配置

来源:互联网 发布:淘宝代刷自动返款系统 编辑:程序博客网 时间:2024/06/05 15:41
原文来自于 http://www.cnblogs.com/zyw-205520/p/3770705.html其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就可以实现网络的监听。1、添加访问网络和获取网络状态的权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>     <uses-permission android:name="android.permission.INTERNET" />2、新建一个Application类并继承android.app.Application 申明变量保存网络状态package com.javen.application;import com.javen.netbroadcast.NetUtil;public class Application extends android.app.Application {    private static Application mApplication;    public static int mNetWorkState;    public static synchronized Application getInstance() {        return mApplication;    }    @Override    public void onCreate() {        super.onCreate();        mApplication = this;        initData();    }    public void initData() {        mNetWorkState = NetUtil.getNetworkState(this);    }}3、新建NetBroadcastReceiver类继承BroadcastReceiver 并实现onReceive方法 在onReceive方法通知接口完成加载package com.javen.receiver;import java.util.ArrayList;import com.javen.application.Application;import com.javen.netbroadcast.NetUtil;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class NetBroadcastReceiver extends BroadcastReceiver {    public static ArrayList<netEventHandler> mListeners = new ArrayList<netEventHandler>();    private static String NET_CHANGE_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";    @Override    public void onReceive(Context context, Intent intent) {        if (intent.getAction().equals(NET_CHANGE_ACTION)) {            Application.mNetWorkState = NetUtil.getNetworkState(context);            if (mListeners.size() > 0)// 通知接口完成加载                for (netEventHandler handler : mListeners) {                    handler.onNetChange();                }        }    }    public static abstract interface netEventHandler {        public abstract void onNetChange();    }}4、在应该的Activity中实现netEventHandler接口 package com.javen.netbroadcast;import com.javen.receiver.NetBroadcastReceiver;import com.javen.receiver.NetBroadcastReceiver.netEventHandler;import com.javen.ui.base.BaseActivity;import android.os.Bundle;import android.view.Menu;public class MainActivity extends BaseActivity implements netEventHandler{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        NetBroadcastReceiver.mListeners.add(this);    }    @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;    }    @Override    public void onNetChange() {        // TODO Auto-generated method stub        if (NetUtil.getNetworkState(this) == NetUtil.NETWORN_NONE) {            T.showLong(this, R.string.net_err);        }else {            T.showLong(this, "网络可以使用");        }    }}5、判断网络的工具类package com.javen.netbroadcast;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo.State;public class NetUtil {    public static final int NETWORN_NONE = 0;    public static final int NETWORN_WIFI = 1;    public static final int NETWORN_MOBILE = 2;    public static int getNetworkState(Context context) {        ConnectivityManager connManager = (ConnectivityManager) context                .getSystemService(Context.CONNECTIVITY_SERVICE);        // Wifi        State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)                .getState();        if (state == State.CONNECTED || state == State.CONNECTING) {            return NETWORN_WIFI;        }        // 3G        state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)                .getState();        if (state == State.CONNECTED || state == State.CONNECTING) {            return NETWORN_MOBILE;        }        return NETWORN_NONE;    }}6、最后在AndroidMainfest.xml里面注册广播    <receiver android:name="com.chat.broadcast.BroadcastNet" >            <intent-filter>                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />            </intent-filter>        </receiver> 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 支付宝登录名尚未激活怎么办 淘宝退货卖家不收货退款买家怎么办 淘宝账号刷得太多违规怎么办 闲鱼交易关闭了怎么办 淘宝店开了没做怎么办 微店店铺严重违规怎么办 淘宝违规扣2分怎么办 淘宝被扣6分怎么办 淘宝被扣2分怎么办 淘宝被海关扣了怎么办 淘宝被扣36分后怎么办 淘宝售假查封店铺资金怎么办 淘宝店扣48分怎么办 淘宝a内被扣48分怎么办 饿了么店铺满减怎么办 淘宝店扣a48分怎么办 淘宝短信营销无法获取人群怎么办 淘宝货发了退款怎么办 极速退款后卖家不确认收货怎么办 把货退了卖家不退款怎么办? 退款了又收到货怎么办 退货忘了填单号怎么办 手机换号了淘宝怎么办 换了手机支付宝怎么办 手机丢了微信登不上去了怎么办 前面手机丢了微信登不上去怎么办 淘宝密码忘了怎么办呢 融e借逾期一天怎么办 拼多多处罚下架怎么办 永久无法解绑支付宝怎么办 淘宝下单购买人数太多怎么办 新浪微博被拉黑暂时无法评论怎么办 闲鱼交易成功后卖家反悔怎么办 闲鱼买家不申请介入怎么办 支付宝安装不上怎么办 无线摄像机离wifi太远怎么办 安卓系统死机了怎么办 安卓手机开不了机怎么办 手机关机键坏了怎么办 华为手机接听电话声音小怎么办 小米6x游戏闪退怎么办