我可以从developer.android.com上了解如何从VPN应用程序的角度支持永远在线VPN 。
但是找不到任何有关android系统内部如何实现此功能的信息?
提前致谢
答案 0 :(得分:2)
android系统是否定期唤醒并检查VPN服务是否正在运行,如果没有则尝试启动指定的VPN服务?
不,系统启动后系统会启动一次VPN服务(使用操作android.net.VpnService
)。根据Android版本,用户首先必须解锁系统(Android 8+似乎就是这种情况)。在Android 7.x上并非如此,如果VPN应用程序可能存在问题,例如需要访问已锁定KeyChain
中的凭据。
只要用户在系统的VPN设置中启用了永远在线VPN功能,它也会启动VPN服务。
这是否会定期发生?
不,但是自Android 8以来,如果启用了永远在线VPN功能,系统会显示通知,但当前没有隧道界面(点击通知将打开系统的VPN设置)。
如果没有网络连接怎么办? android会等到n / w conn恢复以启动VPN服务吗?
不,VPN应用程序必须处理这种情况。