Android网络连接监听
生活随笔
收集整理的這篇文章主要介紹了
Android网络连接监听
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
接收系統網絡服務的廣播接收者
?
public class NetStateReceiver extends BroadcastReceiver {private Handler handler;public NetStateReceiver(Handler handler) {this.handler = handler;}@Overridepublic void onReceive(Context context, Intent arg1) {ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);if (!gprs.isConnected() && !wifi.isConnected()) {System.out.println("網絡已斷開");SysUtils.sendHandlerMsg(handler, SysConstant.MSG_NET_CONN_DISS);}if (gprs.isConnected() || wifi.isConnected()) {System.out.println("網絡已連接");SysUtils.sendHandlerMsg(handler, SysConstant.MSG_NET_CONN_CONN);}}}?
對接收到的廣播進行處理
?
public class MyActivity extends Activity {/** 網絡連接狀態 true:連接;false:斷開 */public boolean netState = false;private NetStateReceiver receiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);int device = GpdService.DEVICE_TYPE_SCANNER;// 一維或二維條碼掃描頭MyGpdUtils.startGpdService(this, device);// 注冊廣播接收者receiver = new NetStateReceiver(handler);IntentFilter filter = new IntentFilter();filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);registerReceiver(receiver, filter);receiver.onReceive(this, null);}Handler handler = new Handler() {public void handleMessage(android.os.Message msg) {switch (msg.what) {case SysConstant.MSG_NET_CONN_DISS:// 網絡斷開MyGpdUtils.playSound("網絡連接已斷開");netState = false;break;case SysConstant.MSG_NET_CONN_CONN:// 網絡連接// MyGpdUtils.playSound("網絡已連接");netState = true;break;}};};}?
?自定義的消息常量
/** 網絡連接消息 */public static final int MSG_NET_CONN_DISS = 222;public static final int MSG_NET_CONN_CONN = 223;?
?
轉載于:https://www.cnblogs.com/arnoid/p/3185571.html
總結
以上是生活随笔為你收集整理的Android网络连接监听的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 复杂网络入门读物
- 下一篇: 利用TortoiseSVN获取最新版本的