Вы можете использовать ConnectivityManager для проверки состояния сети.
ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if ( conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED
|| conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED ) {
// notify user you are online
}
else if ( conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED
|| conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) {
// notify user you are not online
}
Обратите внимание, что константы ConnectivityManager.TYPE_MOBILE и ConnectivityManager.TYPE_WIFI представляют типы соединений, и эти два значения не являются исчерпывающими. Исчерпывающий список смотрите здесь.
Также убедитесь, что у вас есть необходимое разрешение на мониторинг состояния сети. Вам нужно добавить это разрешение в AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />