如何在Android中以编程方式打开私人DNS设置?

4

在安卓上,能否通过编程的方式打开私有DNS设置?

Settings中的私有DNS页面

是否有方法通过编程的方式设置私有DNS值?


你解决了吗?我想在我的应用程序中将用户导航到那个页面。 - trojanfoe
我是通过辅助功能服务来完成的,直接进行这个操作是不可能的。 - RHS.Dev
1个回答

0

您只能听取,无法主动切换私有域名的选择和设置,而且华为手机无法动态修改监控。代码如下:

val cMgr: ConnectivityManager = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager
    if (cMgr != null) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            cMgr.registerNetworkCallback(NetworkRequest.Builder().build(), object : ConnectivityManager.NetworkCallback() {
                @SuppressLint("MissingPermission")
                override fun onLinkPropertiesChanged(network: Network, linkProperties: LinkProperties) {
                    super.onLinkPropertiesChanged(network, linkProperties)
                    println("onLinkPropertiesChanged(Network = $network, LinkProperties = $linkProperties)")
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
                        println(
                            "LinkProperties.isPrivateDnsActive = " + linkProperties.isPrivateDnsActive()
                                .toString() + ", server =" + linkProperties.getPrivateDnsServerName()
                        )
                    }
                }
            })
        }
    }

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