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

接收系统广播监听网络变化

2015-10-14 08:45 561 查看
package com.example.broadcastdemo;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

private IntentFilter filter  ;
private NetwokChangeReceiver reciever ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
filter = new IntentFilter() ;
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
reciever  = new NetwokChangeReceiver() ;
registerReceiver(reciever, filter) ;
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unregisterReceiver(reciever);
}

class NetwokChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
//Toast.makeText(context, "网络环境发生改变", Toast.LENGTH_LONG).show();
ConnectivityManager connectionManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE) ;
NetworkInfo info = connectionManager.getActiveNetworkInfo() ;
if(info != null && info.isAvailable()) {
Toast.makeText(context, "网络可用", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, "网络不可用", Toast.LENGTH_LONG).show();
}

}
}
}
别忘了在权限里声明     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: