如何使用android的“openvpn connect”应用程序结合意图以编程方式连接和断开vpn连接?

时间:2015-03-02 18:17:57

标签: android android-intent openvpn

我正在开发一个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);
}

1 个答案:

答案 0 :(得分:2)

OpenVPN的官方Android客户端可以通过AIDL调用。有source code可用的整个示例应用。它甚至拥有相对友好的许可证。