我正在开发一个
Android应用程序,应该在需要时自动启动OpenVPN Connect会话.
如何使用android的“openvpn connect”应用程序结合意图以编程方式连接和断开vpn连接?
编辑:
与此同时,我发现了这种方法 – 它对我有用:
private void startVPN() { Intent openVPN = new Intent("android.intent.action.VIEW"); openVPN.setPackage("net.openvpn.openvpn"); openVPN.setClassName("net.openvpn.openvpn",net.openvpn.openvpn.OpenVPNClient"); openVPN.putExtra("net.openvpn.openvpn.AUTOSTART_PROFILE_NAME","10.10.10.10 [profilename]"); startActivityForResult(openVPN,0); }
这将启动“OpenVPN Connect”应用程序,并使用profilename进行自动连接.
如果成功,应用程序将自动转到后台.
有没有办法在后台完成这个?
停止VPN连接可以在后台完成所有操作.
private void stopVPN() { Intent openVPN = new Intent("android.intent.action.VIEW"); openVPN.setPackage("net.openvpn.openvpn"); openVPN.setClassName("net.openvpn.openvpn","net.openvpn.openvpn.OpenVPNdisconnect"); startActivityForResult(openVPN,0); }
解决方法
OpenVPN的官方Android客户端可以通过AIDL调用.有一个完整的示例应用程序,有
source code.它甚至有一个相对友好的许可证.