【问题标题】:Is there a way to check which app is turning on the VPN service?有没有办法检查哪个应用程序正在打开 VPN 服务?
【发布时间】:2020-05-22 18:15:21
【问题描述】:

我想避免所有 vpn 连接,除了我的应用创建它的那个,所以我使用以下代码:

public static boolean vpn() {
        String iface = "";
        try {
            for (NetworkInterface networkInterface : Collections.list(NetworkInterface.getNetworkInterfaces())) {
                if (networkInterface.isUp())
                    iface = networkInterface.getName();
                Log.d("DEBUG", "IFACE NAME: " + iface);
                if ( iface.contains("tun") || iface.contains("ppp") || iface.contains("pptp")) {
                    return true;
                }
            }
        } catch (SocketException e1) {
            e1.printStackTrace();
        }

        return false;
    }

这可以很好地检测是否使用了 VPN,但我还想检查打开此 VPN 的应用程序是否是我的,所以我只想知道是否有办法获取包打开此 VPN 的应用程序的名称。

我尝试使用 Sharepreferences 进行此操作,但我使用计时器每 1 秒检查一次,如果打开并保存到可能延迟的共享首选项,有时会出现问题。

【问题讨论】:

    标签: android vpn


    【解决方案1】:

    由于没有答案,以下是我解决此问题的方法:

    • 每次打开应用 VPN 时,我都会将其保存为共享首选项的布尔值。
    • 我设置了一个计时器,每 5 秒检查一次 VPN 是否已连接,并通过 if statement 检查共享首选项的值。

    【讨论】:

      猜你喜欢
      • 2019-08-15
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 2011-08-15
      相关资源
      最近更新 更多