【问题标题】:Disconnect any VPN service programmatically以编程方式断开任何 VPN 服务
【发布时间】:2020-08-24 02:13:18
【问题描述】:

我正在尝试找到一种方法来断开现在由其他应用程序连接的任何 VPN。

1- 有没有办法做到这一点?

2- 有没有办法在断开连接后重新连接上一个 VPN?

注意(我的想法): 当我们的应用程序尝试打开 vpn 时,如果有另一个 vpn 正在运行,它将被终止并且我们的 vpn 将被打开。所以在此之后,我们可以关闭我们的 vpn 服务(SUCCESS)。 如果这是正确的,谁能告诉我如何做上述场景?

【问题讨论】:

  • "有没有办法做到这一点?" -- 希望不会,除非作为设备所有者应用程序。
  • @CommonsWare 你能看一下注释吗?

标签: android vpn


【解决方案1】:

我找到了第一部分的答案,但第二部分需要帮助:

class MainActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_empty)
        checkVPN()
    }

    private fun checkVPN() {
        val intent = VpnService.prepare(applicationContext)
        if (intent != null) {
            startActivityForResult(intent, 0)
        } else {
            onActivityResult(0, RESULT_OK, null)
        }
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        if (resultCode == RESULT_OK) {
            val intent = Intent(this, BackgroundService::class.java)
            startServiceCompat(intent)
        }
    }
}

这会断开任何已连接的 vpn,并且第一次会要求用户连接 vpn,但此后我们不会连接任何 vpn。

【讨论】:

  • 好主意。 Morteza,你知道伊朗市场是否反对这个问题吗?
  • 我不明白你的意思。请解释更多。
猜你喜欢
  • 2012-07-17
  • 2021-09-13
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 2011-10-27
相关资源
最近更新 更多