我的应用程序通过 VPN 在远程主机上执行操作。一切都很好:在一部新手机上,我手动创建了 VPN 并确保它正常工作,加载应用程序并运行它以执行远程操作并继续我的一天。我的应用程序还会通知我远程发生的事情,因此必须保持连接才能正常工作。目前,该应用程序检测到远程主机何时无法访问并发送通知以通知我连接丢失,以便我可以单击 Android 的 VPN 状态屏幕中的重新连接按钮。
我想要的是以编程方式“按下”该按钮。
我不希望使用代码添加新的 VPN 连接,甚至不希望使用代码启动它——我只想在断开连接时重新连接 VPN。为什么 Android 不支持自动重新连接,即使它只尝试几次就完全放弃,就像当前的实现一样。
该应用程序永远不会分发,它仅适用于我们的内部支持人员,所以只要它在目标设备上运行,我不担心向后兼容性或设备特定问题:Galaxy S III
目前,该应用程序为intent
用户提供了一个连接快捷方式,以使用 SETTINGS 意图快速访问 VPN 屏幕:
public void openVPN(View view) {
startActivity(new Intent("android.net.vpn.SETTINGS"));
}
虽然这适用于手动重新连接,但必须这样做仍然很烦人,并且需要多次点击才能完成。我到处搜索,似乎没有人有一个优雅的解决方案,而无需将手机植根并使用 3rd 方 VPN 客户端包而不是 Android 客户端。
我是在使用股票 API 时运气不佳,还是有一些秘密的 ninja API 可以满足我的需求,即使这意味着失去向后和向前的兼容性?
这是我对 Stack Overflow 的第一个问题!