我正在使用android studio创建一个应用程序,可以嗅探来自wifi网络(大学项目)的所有数据包。应用程序应该首先通过启用bcmon在设备中启用监控模式,然后运行airodump。嗅探数据包,停止airodump并禁用bcmonwhich,这将禁用监控模式。然后,应用程序将以列表的形式显示数据包。
我创建了两个工厂按钮,一个是绿色的,一个是红色的。当我按下绿色按钮时,它应该启用bcmon并运行airodumb,红色按钮应该停止airodump并禁用bcmon。
问题是,当我按下绿色按钮时,会显示bcmon已启用等,但wifi没有关闭。当我按下红色按钮时,它会关闭wifi几秒钟,然后停止airodump并禁用bcmon,然后再次打开wifi。这是错误的。
这是我在后台线程上启用bcmon的代码行:
代码语言:javascript运行复制Shell.SU.run(new String("/data/data/com.nadya.sniffingwifi/tools/enable_bcmon"));下面是从mainActivity中调用它的方式:
代码语言:javascript运行复制new backgroundThread().setContext(v1.getContext()).execute(new String[]{"enable_bcmon"});
Toast.makeText(v1.getContext(), "Monitor Mode Enabled", Toast.LENGTH_SHORT).show();有人知道为什么会这样吗?