Android 方法在VpnService.Builder中传递用户名和密码

Android 方法在VpnService.Builder中传递用户名和密码,android,vpn,Android,Vpn,我正在开发我想使用VPN网络的应用程序。要在设备中创建VPN网络,我们需要从设备的(设置无线和网络VPN设置)菜单进行配置 我想通过带有硬编码信息的代码进行许多设置 从API级别4.0开始,android提供API来处理 为了了解这种方法的实现,我使用了androidtoyvpn的示例项目。但是在这许多方法中,我没有找到传递用户名和密码的方法。我必须连接VPN网络的信息是 VPN服务器名称 用户名 密码 使用这三个信息,如果从设备手动配置,我将成功连接到VPN网络。但我想通过编程来实现这一点。下

我正在开发我想使用VPN网络的应用程序。要在设备中创建VPN网络,我们需要从设备的(设置无线和网络VPN设置)菜单进行配置

我想通过带有硬编码信息的代码进行许多设置

从API级别4.0开始,android提供API来处理

为了了解这种方法的实现,我使用了androidtoyvpn的示例项目。但是在这许多方法中,我没有找到传递用户名和密码的方法。我必须连接VPN网络的信息是

  • VPN服务器名称
  • 用户名
  • 密码
  • 使用这三个信息,如果从设备手动配置,我将成功连接到VPN网络。但我想通过编程来实现这一点。下面是用于连接到VPN网络的类文件。和。除此示例外,该应用程序还在设备中崩溃

    任何帮助都将不胜感激。

    你所说的不是你所想的。它只是一个供您创建自己的VPN解决方案的框架。一旦建立,您将获得网络(IP)层上的所有通信,并且您可以使用它做任何您想做的事情,例如,加密它并将其发送到您的服务器-例如/samples/android-14/目录中的ToyVpn项目。您还需要自己的服务器端代码来进行解密和必要的流量路由


    不幸的是,您无法以编程方式设置内置的android VPN。您所能做的最好是向用户显示一个对话框,解释如何设置,然后弹出系统设置,并显示正确的屏幕。

    可以使用内部android.jar(com.android.internal)和隐藏(@hide)API。请参阅以下链接:


    设置通常不可更改程序。您通常只能弹出设置供用户填写。谢谢您的建议,但如果我想在后台建立VPN连接而不与用户交互,该怎么办。@juned您有没有找到配置L2TP和PPTP连接的解决方案?如果你找到了,请分享。不@AndroidLearner我还在搜索,你检查过openvpn项目吗?到目前为止,这只能在2.2和2.3中实现——我自己也在寻找在3.x和4.x中实现这一点的方法……我也在尝试同样的方法。我可以在API 10中修改sdk中的android.jar(将该文件设置为与我使用adb pull从设备中获得的文件完全相同),但现在我不能这样做,因为新设备不包含VpnManager.java、PptpProfile.java等文件(您可以在android.net.vpn中找到的文件),因此,我在android项目中创建了这些类(通过复制它们),但尽管它加载到设备中,但并不绑定。根据你提到的,如果我保存用户名。。。(将继续)(继续)和密码在VPN应用程序(设备的默认设置)中,您知道如何通过编程方式调用该应用程序以使其运行并连接到所需网络吗?甚至不显示默认应用程序。我正试图在android 4.2.2 API 17中实现这一点。