【问题标题】:Start OpenVPN through intent from another APP通过其他 APP 的意图启动 OpenVPN
【发布时间】:2017-03-09 09:44:07
【问题描述】:

大家好,Stackoverflowers,

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

    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 库之类的东西才能使用它?

【问题讨论】:

    标签: android android-intent openvpn


    【解决方案1】:

    您正在调用startActivity,因此您将需要包含net.openvpn.openvpn 包和Intent 过滤器的任何应用程序。

    setClassName 正在为特定类调用该包,最终将需要一些 Intent 额外内容。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-07
        • 1970-01-01
        • 2016-10-10
        • 1970-01-01
        • 2019-05-31
        相关资源
        最近更新 更多