通过另一个APP的意图启动OpenVPN

时间:2017-03-09 09:44:07

标签: android android-intent openvpn

你好伙伴Stackoverflowers,

几天前,我发现这个简洁的小功能可以启动并使用意图从另一个应用程序连接Op​​enVPN。

    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 [10.10.10.10]");
    startActivityForResult(openVPN,0);

}

现在我的问题是:

我是否只需要安装OpenVPN(连接或安装Android),或者我是否需要创建类似.jar libary的东西来使用它?

2 个答案:

答案 0 :(得分:0)

您正在呼叫startActivity,因此您需要包含该net.openvpn.openvpn个套餐和Intent过滤条件的任何应用。

setClassName正在为特定类调用该包,最终会占用一些Intent个额外内容。

所以没有JAR文件,是的,需要安装应用程序。如果您没有安装该应用,我认为onActivityResult将返回除OK响应代码以外的其他代码。

答案 1 :(得分:0)

您创建的意图只打开openVpn应用程序,为此应该在设备上安装openVpn应用程序,否则此代码将崩溃。您可以检查此代码是否将解析意图

 // Verify that the intent will resolve to an activity
 if (sendIntent.resolveActivity(getPackageManager()) != null) {
      startActivity(sendIntent);
}