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
- Android 网络权限配置
- android网络配置
- android 读取网络的配置
- Android模拟器怎么配置网络连通
- Android X86 V4.0的网络配置
- android x86虚拟机 网络正确配置
- Android模拟器网络配置的方法
- Android模拟器怎么配置网络连通
- VirtualBox 安装android-x86-4.4 网络配置
- Android开发网络程序-Tomcat配置
- Android模拟器无线网络怎么配置网络连通
- Android 的网络编程(10)-网络权限配置
- 网络配置
- 网络配置
- 配置网络
- 网络配置
- 配置网络
- 网络配置
- STL中的nth_element()方法的使用
- 蓝桥杯-算法提高-队列操作
- csu1798: 小Z的城市 线段树+ST表
- android之ListView重写item里面的事件
- shell中的变量赋值
- android网络配置
- 改不少次,全是小错误
- poj3974:Palindrome(manacher模板)
- make modules_install指定ko安装路径
- C#如何查找指定目录下文件示例
- cs231n学习心得
- 十、ngMockE2E模块,后台数据模拟
- Java.面向对象.02.继承、向上造型等
- linux初级学习之文件权限 第六单元 学习笔记