我的应用通过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"));
}
虽然这适用于手动重新连接,但仍然很烦人必须这样做并且需要几次完成才能完成。我到处搜索,似乎没有一个优雅的解决方案,没有生根电话和使用第三方VPN客户端包而不是Android客户端。
我是否因使用股票API而运气不好,或者是否有一些秘密的忍者API可以满足我的需要,即使它意味着失去向后兼容性?
这是Stack Overflow的第一个问题!