我需要实现一个Android应用程序,允许用户配置VPN连接,而无需访问Android设备的本机菜单.有了这个,我有两个问题:
在Android 4.0 +(api级别14及以上)我发现有一个名为VpnService的新组件,它提供了一个钩子,用于创建虚拟网络接口,配置它并拦截/转发从它到VPN服务器的小包,但是没有在PPTP或IPSec等vpn协议中构建,只有实现它们的可能性.我的问题是,是否有任何现成的PPTP和IPSec解决方案可以与VpnService一起使用?
在早期版本的Android中,从我到目前为止所发现的,似乎使用VPN的唯一方法是通过在android中包装(使用反射)一些隐藏的api来访问和配置设备的内置vpn解决方案但这是一个由于设备需要植根,因此隐藏的api实现可能因设备而异,从操作系统版本到操作系统版本也有所不同.有没有更好的方法以编程方式配置底层Linux操作系统的内置VPN?
我想知道是否可以使用Android 4.0中的新VPN API以编程方式创建VPN接口.我查看了http://developer.android.com/resources/samples/ToyVpn,但这是关于创建一个完整的VPN客户端来处理连接等.我只想添加一个新的VPN配置,并可能删除现有的配置.
有很多像这样的问题,但它们似乎都是预先4.0.我知道以前这是不可能的,但人们会认为新的VPN API提供了这样的功能.那么有没有人找到这样做的方法,还是仍然不可能?如果有办法,请指出正确的方向.
我是新来的Android和我试图建立并连接到我们自己的vpn(不是默认的vpn供应商即PPTP,L2TP等这是目前在Android Setting -> Wireless and Networks)编程.
我的情况是,我有按钮,当我点击按钮时,我需要自己配置vpn,链接(比如www.google.com)应该经过VPN我配置的那个.
有没有示例代码?
我找到了以下代码以编程方式建立一个新的 vpn,但我不知道如何使用它来创建我的应用程序
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);
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我提供示例代码吗?甚至有可能实现dis吗?