Programmatically setting up a vpn on Android

13k Views Asked by At

I have found the following code to establish a new vpn programmatically but I do not know how to use it to create my app

VpnService service = context.getSystemService(VPN_SERVICE);
VpnProfile profile = VpnProfile.create(L2TP_PROFILE);
profile.setName(myServerName);
profile.setServerName(myServerAddress);
profile.setRouteList("192.168.1.0/255.255.255.0,192.168.10.0/255.255.255.0");
service.connect(profile, "myUserName", "myPassword");
service.setNotificationIntent(myIntent);

can anyone please help me with a sample code? Is it even possible to to achieve dis?

1

There are 1 best solutions below

3
On

Note: this answer is dated and may now be inaccurate.

Take a look at this question: How to configure VPN programmatically?

While yours isn't necessarily a duplicate, the answer is likely the same, in that you're going to need to expose the hidden API (if it's available) or worse, be dependent on the device being rooted.

Understandably, programmatically creating a VPN connection poses an inherent security risk for the end user, and shouldn't be implemented without consideration.