广播的基本使用,判断是否有可用网络,并弹出设置窗口
1、MainActivity
package lpc.com.project521;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.NetworkInfo;import android.os.Bundle;import android.provider.Settings;import android.widget.Toast;public class MainActivity extends Activity {private IntentFilter intentFilter;private NetworkChangeReceiver networkChangeReceiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);intentFilter = new IntentFilter();intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");//android.net.conn.CONNECTIVITY_CHANGE是网络发生变化时的事件,将此事件和自定义的广播绑定之后,当发生网络状态改变的情况,就会调用自定义广播里的操作,此处是跳出设置窗口networkChangeReceiver = new NetworkChangeReceiver();registerReceiver(networkChangeReceiver,intentFilter);}private class NetworkChangeReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();if (networkInfo !=null && networkInfo.isAvailable()){Toast.makeText(context,"网络可用",Toast.LENGTH_SHORT).show();}else {Toast.makeText(context,"网络不可用,请设置网络",Toast.LENGTH_SHORT).show();intent = new Intent(Settings.ACTION_SETTINGS);startActivity(intent);}}}@Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(networkChangeReceiver);}- }
2、manifest文件
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="lpc.com.project521"><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>
运行结果,当开启网络时,提示网络可用,当网络不可用(wifi和移动网络都不可用时,弹出网络不可用,并弹出设置 窗口)

浙公网安备 33010602011771号