由于某些外部事件,我希望在我的 Android 应用中刷新 DNS。 我注意到 Android 系统代码使用类似以下的代码:
final Intent intent = new Intent(Intent.ACTION_CLEAR_DNS_CACHE);
清除DNS缓存,但似乎在用户代码中不可用。是否有其他替代方案?谢谢。
由于某些外部事件,我希望在我的 Android 应用中刷新 DNS。 我注意到 Android 系统代码使用类似以下的代码:
final Intent intent = new Intent(Intent.ACTION_CLEAR_DNS_CACHE);
只有在您的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')
adb -s ... shell
前缀)。您可以手动打开Chrome并输入
chrome://net-internals/#dns
这将带您到DNS查找页面,在那里您会找到一个“清除主机缓存”按钮,请点击它。