2

我正在构建一个 android-app,其中两个用户通过 WiFi-Hotspot 连接。我以编程方式创建连接。假设用户 A 创建 WiFi 热点,用户 B 连接到此热点。现在我让他们使用套接字互相聊天。但是如果用户 A 的数据连接开启,那么用户 B 可以通过其他应用程序使用这些数据,这可能会导致 A 受到影响。所以,我想要一种方法来禁止用户 B 使用用户 A 的互联网,即通过热点连接它们但不共享互联网。

我查看了连接管理器中隐藏的方法 getTetherableIfaces 和 untether ,但不知何故它不起作用。以下是我如何使用它们:

ConnectivityManager cman = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
Method[] methods = cman.getClass().getMethods();
for (Method method : methods) {
            if (method.getName().equals("getTetherableIfaces")) {
                try {
                    interfaces = (String[]) method.invoke(cman);
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }

        }



for (Method method : methods) {
            if (method.getName().equals("untether")) {
                try {
                    for(int i=0;i<interfaces.length;i++)
                    {
                        method.invoke(cman,interfaces[i]);
                    }
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }

        }

PS:我已经研究了 Android 防火墙应用程序,但有些使用 root 和其他使用 VPN,这在我的情况下是不可能的。

4

0 回答 0