Puede registrar un BroadcastReceiver
para recibir una notificación cuando se establezca una conexión WiFi (o si la conexión cambió).
Registra el BroadcastReceiver
:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
registerReceiver(broadcastReceiver, intentFilter);
Y luego en tu BroadcastReceiver
hacer algo como esto:
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) {
if (intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED, false)) {
//do stuff
} else {
// wifi connection was lost
}
}
}
Para obtener más información, consulte la documentación para BroadcastReceiver
yWifiManager
Por supuesto, debe verificar si el dispositivo ya está conectado a WiFi antes de esto.
EDITAR: Gracias a la prohibición de geoingeniería, aquí hay un método para verificar si el dispositivo ya está conectado:
private boolean isConnectedViaWifi() {
ConnectivityManager connectivityManager = (ConnectivityManager) appObj.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return mWifi.isConnected();
}