package com.example.mylauncher; import android.net.ConnectivityManager; import android.net.Network; import android.net.ConnectivityManager.NetworkCallback; import android.os.Build; import android.widget.Toast; public class WifiNetworkCallback extends NetworkCallback { private final String ssid; private final ConnectivityManager connectivityManager; private final MainActivity mainActivity; public WifiNetworkCallback(MainActivity activity, String ssid, ConnectivityManager connectivityManager) { this.ssid = ssid; this.connectivityManager = connectivityManager; this.mainActivity = activity; } @Override public void onAvailable(Network network) { super.onAvailable(network); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { connectivityManager.bindProcessToNetwork(network); } mainActivity.runOnUiThread(() -> { Toast.makeText(mainActivity, "Connected to " + ssid.replace("\"", ""), Toast.LENGTH_SHORT).show(); }); } @Override public void onUnavailable() { super.onUnavailable(); mainActivity.runOnUiThread(() -> { Toast.makeText(mainActivity, "Could not connect to " + ssid.replace("\"", ""), Toast.LENGTH_SHORT).show(); connectivityManager.unregisterNetworkCallback(this); }); } @Override public void onLost(Network network) { super.onLost(network); mainActivity.runOnUiThread(() -> { Toast.makeText(mainActivity, "Lost connection to " + ssid.replace("\"", ""), Toast.LENGTH_SHORT).show(); connectivityManager.unregisterNetworkCallback(this); }); } }