Сначала вы должны создать BroadcastReceiver:
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
isInternetAvailable();
}
private boolean isInternetAvailable() {
try {
return (Runtime.getRuntime().exec("ping -c 1 google.com").waitFor() == 0);
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}
}
, затем вам нужно зарегистрироваться в манифесте:
<receiver android:name=".NetworkChangeReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
в конце вы должны зарегистрироватьсяв вашем основном приложении:
public class MainApplication extends MultiDexApplication {
@Override
public void onCreate() {
NetworkChangeReceiver myReceiver = new NetworkChangeReceiver();
registerReceiver(myReceiver, filter);
}
}
, поэтому теперь при каждом подключении к WIFI вы будете получать трансляцию, а из isInternetAvailable () вы узнаете, подключаетесь ли вы к Интернету или нет.
не забывайте разрешения:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />