如何在Android设备上清除DNS缓存?

7

由于某些外部事件,我希望在我的 Android 应用中刷新 DNS。 我注意到 Android 系统代码使用类似以下的代码:

final Intent intent = new Intent(Intent.ACTION_CLEAR_DNS_CACHE);

清除DNS缓存,但似乎在用户代码中不可用。是否有其他替代方案?谢谢。
2个回答

1

只有在您的Android设备已经取得了root权限的情况下,这个方法才能起作用

使用adb工具,您可以像这样清除缓存(在当前的Android x86镜像上测试通过)

os.system(f'adb -s {host} shell am force-stop com.android.chrome')
os.system(f'adb -s {host} shell ndc resolver clearnetdns wlan0')
os.system(f'adb -s {host} shell ndc resolver clearnetdns wifi_eth')

所以,如果你的安卓手机已经取得了root权限,你可以尝试执行相同的命令(不需要adb -s ... shell前缀)。

0

您可以手动打开Chrome并输入

chrome://net-internals/#dns

这将带您到DNS查找页面,在那里您会找到一个“清除主机缓存”按钮,请点击它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接