Is it possible to check if an Android device is connected to a VPN server? A search in the API provides 'paltform highlights' for Android 1.6, so that doesn't fill me with much confidence.
Asked
Active
Viewed 1.1k times
10
-
1Can anyone throw some light on the above query. I also need to get VPN status . But i find out the APIs are hidden . Any suggestions how can we access those APIs – Feb 15 '12 at 05:19
-
this previous answer looks like what you need: http://stackoverflow.com/a/34115721/5094121 – Ilan.b Jun 28 '16 at 08:01
1 Answers
9
You can register to broadcastreceiver and all vpn states will come to you application.
Add this to application manifest:
<receiver android:name=".ConnectivityReceiver">
<intent-filter>
<action android:name="vpn.connectivity" />
</intent-filter>
</receiver>
create a class:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class ConnectivityReceiver extends BroadcastReceiver
{
public void onReceive(Context c, Intent intent)
{
String state = intent.getSerializableExtra("connection_state").toString();
Log.d("**************", state.toString());
if (state.equals("CONNECTING")) {
// Do what needs to be done
}
else if (state.equals("CONNECTED")) {
// Do what needs to be done
}
else if (state.equals("IDLE")) {
int errorCode = intent.getIntExtra("err", 0);
if (errorCode != 0) {
// Do what needs to be done to report a failure
}
else {
// Normal disconnect
}
}
else if (state.equals("DISCONNECTING")) {
// Usually not very interesting
}
}
}

Nesim Razon
- 9,684
- 3
- 36
- 48
-
I don't need this anymore, but thanks for the answer! I don't have the time to test it, but I trust you. – Jonah H. Apr 16 '12 at 05:37
-
21the solution failed to work on Android 4.0+, I read the Android source, there's no such vpn.connectivity broadcast anymore... – fifth Oct 29 '12 at 07:16
-
-
2