为什么个人 vpn 配置不起作用?

Why personal vpn configuration not working?

我正在开发一个 VPN 应用程序,它将个人 VPN 配置文件安装到系统配置中。如果我的应用程序只是设备上的一个 VPN 应用程序 - 一切都按预期工作。如果我再安装一个带有另一个 个人 VPN 证书的 VPN 应用程序,我就会遇到问题。

正如您在屏幕截图中看到的,系统中安装了两个 personal 证书。其中之一(不是我应用程序的证书)处于 selected 状态。当我尝试从我的应用程序连接到 VPN 时,我的证书没有进入 selected 状态并且 VPN 不工作。只有当我在设置中手动 select 我的应用程序证书时它才有效。 但是,当我尝试从另一个应用程序连接到 VPN 时,此应用程序会自动 select 在系统设置中提供正确的证书并且一切正常。

所以,我的问题是:在连接到 VPN 之前是否有 API 到 select 正确的证书?

我尝试使用 NEVpnManager.isEnabled 但没有成功。在尝试连接到 VPN 之前,我还使用 NEVPNManager.saveToPreferences()

我解决了我的问题。原因是 NEVPNManager.isEnabled 标志。在调用方法 saveToPreferences() 之前必须将其设置为 TRUE。