动态注册广播判断网络,跳转到设置页面

来源:互联网 发布:算法 塞奇威克 pdf 编辑:程序博客网 时间:2024/06/05 03:24
package com.example.guangbo;import android.app.AlertDialog;import android.content.BroadcastReceiver;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.provider.Settings;import android.widget.Toast;public class ConnectionChangeReceiver extends BroadcastReceiver {    private ConnectivityManager mConnectivityManager;    private NetworkInfo netInfo;    @Override    public void onReceive(final Context context, Intent intent) {        //获取网络连接        mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);        netInfo = mConnectivityManager.getActiveNetworkInfo();        //判断        if(netInfo != null && netInfo.isAvailable()){            Toast.makeText(context,"网络已连接",Toast.LENGTH_SHORT).show();        }else{            //弹框            AlertDialog.Builder dialog = new AlertDialog.Builder(context).setTitle("世界上最遥远的距离~~~")                    .setMessage("您可以在“设置”中为此应用打开移动数据。")                    .setPositiveButton("算了",null)                    .setNegativeButton("设置", new DialogInterface.OnClickListener() {                        @Override                        public void onClick(DialogInterface dialogInterface, int i) {                            context.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));                        }                    });            //一定要创建和展示哦            dialog.create().show();        }    }}

==================================以下是MainActivity界面

ConnectionChangeReceiver myNetReceiver = new ConnectionChangeReceiver();        IntentFilter mFilter = new IntentFilter();        mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);        registerReceiver(myNetReceiver, mFilter);