我正在构建一个Android-app,其中两个用户通过WiFi-Hotspot连接。我以编程方式创建连接。假设用户A创建WiFi热点,用户B连接到此热点。现在我使用socket让他们互相聊天。但是,如果用户A的数据连接为ON,则用户B可以通过其他应用程序使用此数据,这可能导致A受损。因此,我想要一种方法来禁止用户B使用用户A的互联网,即通过热点连接它们但不共享互联网。
我已经查看了隐藏方法getTetherableIfaces并且在Connection Manager中没有使用它,但不知怎的,它不起作用。以下是我如何使用它们:
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,这在我的情况下是不可能的。