【发布时间】: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 秒检查一次,如果打开并保存到可能延迟的共享首选项,有时会出现问题。
【问题讨论】: