We have some Windows CE applications we are porting to Android (Zebra devices). For support purposes, we log the domain name returned by DHCP (option 15) at application startup (lessons learned dealing with misconfigured infrastructure in the past).
In Windows CE this is available in the DomainName member of the FIXED_INFO struct returned by GetNetworkParams(). It also appears to be available in HKLM\Comm\Tcpip\Parms\DNSDomain in the registry.
I am having difficulty finding how to accomplish the same in Android. I did notice a DhcpInfo class for Android, but it does not contain the Domain Name.
getting the domain name of DHCP on Android asked a similar question but does not have any helpful answers.
Thanks for your help.
below function registers a network callback and retrieves network properties, specifically focusing on DHCP and domain name information if supported.
The function obtains a reference to the Connectivity Manager by calling
requireContext().getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager. This allows it to interact with the device's network-related functionalities.Next, it registers a default network callback using
registerDefaultNetworkCallback(). This callback is triggered when a network connection becomes available. Within the callback, theonAvailable()method is overridden to perform actions when a network becomes available.Inside the
onAvailable()method, it first checks if the network has the capabilityNET_CAPABILITY_NOT_RESTRICTED, which indicates that the DHCP option 15 (Domain Name) is supported. If the capability is present, it proceeds with retrieving the network properties.The function then obtains the link properties for the network using
connectivityManager.getLinkProperties(network). The link properties contain information such as IP addresses, DNS servers, and domain names associated with the network.The DHCP information is stored in the linkPropertiesInfo variable, which is obtained by calling
linkProperties.toString(). The domain name associated with the network is extracted usinglinkProperties.domainsand assigned to an unspecified variable.