第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 BroadcastReceiver 內(nèi)部打開 Wifi 設(shè)置

如何從 BroadcastReceiver 內(nèi)部打開 Wifi 設(shè)置

慕勒3428872 2023-10-12 10:05:40
我正在開發(fā)一個 Android 應(yīng)用程序,它可以識別設(shè)備是否連接到網(wǎng)絡(luò)。如果沒有,應(yīng)用程序會顯示AlertDialog并讓用戶有機(jī)會轉(zhuǎn)到設(shè)備設(shè)置并打開 wifi。我已經(jīng)為這項工作創(chuàng)建了一個BroadcastReceiver,但我不知道如何創(chuàng)建一個AlertDialog并為用戶提供啟用 wifi 的選項。這是 的代碼BroadcastReceiver。public class ExampleBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(final Context context, Intent intent) {    if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {        boolean noConnectivity = intent.getBooleanExtra(                ConnectivityManager.EXTRA_NO_CONNECTIVITY, false        );        if (noConnectivity) {            AlertDialog.Builder builder1 = new AlertDialog.Builder(context);            builder1.setMessage("You must have internet connection");            builder1.setCancelable(true);            builder1.setPositiveButton(                    "Yes",                    new DialogInterface.OnClickListener() {                        public void onClick(DialogInterface dialog, int id) {                        }                    });            builder1.setNegativeButton(                    "No",                    new DialogInterface.OnClickListener() {                        public void onClick(DialogInterface dialog, int id) {                            dialog.cancel();                        }                    });            builder1.create();            builder1.show();        } else {            Toast.makeText(context, "Connected", Toast.LENGTH_SHORT).show();        }    }}}
查看完整描述

1 回答

?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗 獲得超4個贊

請注意,以下代碼僅供您參考。您可以根據(jù)您的要求更新/更改此代碼。


public class MainActivity extends AppCompatActivity {


    private static final String TAG = MainActivity.class.getSimpleName();

    private BroadcastReceiver mNetworkReceiver;




    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        registerNetworkBroadcastForNougat();


    }


private void registerNetworkBroadcastForNougat() {

    mNetworkReceiver = new NetworkChangeReceiver();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

        registerReceiver(mNetworkReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

    }

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

        registerReceiver(mNetworkReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

    }

}


protected void unregisterNetworkChanges() {

    try {

        unregisterReceiver(mNetworkReceiver);

    } catch (IllegalArgumentException e) {

        e.printStackTrace();

    }

}


@Override

public void onDestroy() {

    super.onDestroy();

    unregisterNetworkChanges();

}




class NetworkChangeReceiver extends BroadcastReceiver {


    @Override

    public void onReceive(Context context, Intent intent)

    {

        try

        {

            if (!isOnline(context)) {

                showDialog(context);

            }


        } catch (NullPointerException e) {

            e.printStackTrace();

        }

    }


    private void showDialog(final Context context) {

        AlertDialog.Builder builder1 = new AlertDialog.Builder(context);

        builder1.setMessage("You must have internet connection");

        builder1.setCancelable(true);


        builder1.setPositiveButton(

                "Yes",

                new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int id) {

                        startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));

                    }

                });


        builder1.setNegativeButton(

                "No",

                new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int id) {

                        dialog.cancel();

                    }

                });

        builder1.create();

        builder1.show();

    }


    private boolean isOnline(Context context) {

        try {

            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

            NetworkInfo netInfo = cm.getActiveNetworkInfo();

            //should check null because in airplane mode it will be null

            return (netInfo != null && netInfo.isConnected());

        } catch (NullPointerException e) {

            e.printStackTrace();

            return false;

        }

    }

}

}


查看完整回答
反對 回復(fù) 2023-10-12
  • 1 回答
  • 0 關(guān)注
  • 91 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號