So far:
I found the following solutions
-
The broadcast receiver is deprecated from ICS
-
It's definitely going to take lots of time and its not efficient
Polling for DNS server changes
It's definitely going to take lots of time and its not efficient
-
Even though it won't take much time depending on the network connection it may vary
My conclusion:
So far all the solutions I found are either not efficient or not so reliable.
My questions:
If VPN is connected in android device then android OS must be aware of it.
Are there any public android framework APIs to read it because finding it locally is most efficient and reliable solution ?
Are there any other efficient and reliable ways to achieve it (like integrating a C or C plus plus library with NDK)?
Note:
I couldn't find any custom broadcast senders/AIDL from OpenVPN for Android as well
I know the answer is ridiculously late, but I was just trying to figure this out and stumbled upon the command:
This will return an
IP address
and other info if the VPN is connected and if it isn't.Have you used - VpnService
As per documentation -
From here-
http://developer.android.com/reference/android/net/VpnService.html#prepare(android.content.Context)
You can try to check for tun0 INTERFACE, It is being start afther the establish command.
this also might work:
(Collections.list(NetworkInterface.getByName("tun0")