23

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

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

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

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

  1. VPN 服务器名称
  2. 用户名
  3. 密码

如果我从设备手动配置,则使用这三个信息可以成功连接到 VPN 网络。但我想以编程方式执行此操作。这是用于连接到 VPN 网络的类文件。 ToyVpnClient.javaToyVpnService.java。除了这个示例应用程序是设备崩溃。

任何帮助将不胜感激。

4

2 回答 2

3

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

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

于 2012-10-12T09:37:10.217 回答
0

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

如何使用 Android 4.0 以编程方式创建新的 VPN 接口?

于 2014-11-20T06:16:13.193 回答