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

时间:2012-07-13 13:28:18

标签: android vpn

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

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

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

要知道这个方法的实现,我使用了Android ToyVPN的Sample项目。但在这许多方法中,我没有找到任何方法来传递用户名和密码。我必须连接VPN网络的信息是。

  1. VPN服务器名称
  2. 用户名
  3. 密码
  4. 使用这三个信息,如果我从设备手动配置,我就成功连接到VPN网络。但我想以编程方式执行此操作。这是用于连接VPN网络的类文件。 ToyVpnClient.javaToyVpnService.java。除此示例应用程序外,还会在设备中崩溃。

    任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

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

很遗憾,您无法以编程方式设置内置的Android VPN。您可以做的最好的事情是向用户显示一个对话框,说明如何设置它,然后在显示正确的屏幕时弹出系统设置。

答案 1 :(得分:0)

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

How to programmatically create a new VPN interface with Android 4.0?

相关问题