gpt4 book ai didi

android - 如何通过框架API或任何其他有效方法查找VPN连接状态?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:06:59 27 4
gpt4 key购买 nike

到目前为止:

我找到了以下解决方案

  1. Using Broadcastreceiver

    广播接收器已从 ICS 弃用

  2. Using Ping or Traceroute

    肯定会花很多时间,而且效率不高

  3. Polling for DNS server changes

    肯定会花很多时间,而且效率不高

  4. Using ip-address

    虽然它不会花费太多时间,但取决于网络连接,它可能会有所不同

我的结论:

到目前为止,我找到的所有解决方案要么效率不高,要么不太可靠。

我的问题:

如果 Android 设备连接了 VPN,那么 Android 操作系统必须知道它。

是否有任何公共(public) android 框架 API 来读取它,因为在本地找到它是最有效和可靠的解决方案?

是否有任何其他有效且可靠的方法来实现它(例如将 C 或 C plus 库与 NDK 集成)?

注意:

我也无法从适用于 Android 的 OpenVPN 中找到任何自定义广播发送器/AIDL

最佳答案

您可以尝试检查 tun0 INTERFACE,它在 establish 命令后正在启动。

try {
for( NetworkInterface intf : Collections.list(NetworkInterface.getNetworkInterfaces())) {

// Pass over dormant interfaces
if(!intf.isUp() || intf.getInterfaceAddresses().size() == 0)
continue;

if ("tun0".equals(intf.getName())){
// The VPN is up
break;
}
}
}

这也可能有效:

(Collections.list(NetworkInterface.getByName("tun0")

关于android - 如何通过框架API或任何其他有效方法查找VPN连接状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24861034/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com