I've an app that has a receiver of android.intent.action.BOOT_COMPLETED
and start a private VPN. But when I receive a android.intent.action.BOOT_COMPLETED
the network isn't ready yet. What can I do to start a android.intent.action.BOOT_COMPLETED
and wait to have a network status?
for example I can have a android.intent.action.BOOT_COMPLETED
but the phone has no internet connection, or I can have a android.intent.action.BOOT_COMPLETED
and 5 seconds later a internet Access.
Get Network on android.intent.action.BOOT_COMPLETED
1.6k Views Asked by Alessio Crestani At
2
There are 2 best solutions below
3

You could register a broadcast receiver listening on the android.net.conn.CONNECTIVITY_CHANGE action.
then check if you are connected like this:
public boolean isOnline(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
//should check null because in air plan mode it will be null
return (netInfo != null && netInfo.isConnected());
}
source and more information: Broadcast receiver for checking internet connection in android app
You can always listen to multiple items on one receiver:
So after boot you just wait for connectivity change and do your stuff.