= README Android ifaddrs Android API level < 24 doesn't provide `getifaddrs` and related functions, we have tested multiple ways to overcome this issue. == Non Weorking alternative implementations https://github.com/kmackay/android-ifaddrs https://github.com/morristech/android-ifaddrs https://www.openhub.net/p/android-ifaddrs/ Compiles but then segfault at runtime. == Qt implementation Using `QNetworkInterface::allAddresses()` provided by Qt works but at time of writing (Q4 2021) on newer Android the log is flooded by warnings as we reported here https://bugreports.qt.io/browse/QTBUG-78659 plus depending on Qt networking module just for this is frustrating. Update: the warning flood seems have been fixed in later Qt versions https://bugreports.qt.io/browse/QTBUG-86394 This solution was the first working we implemented in our code it has been removed to avoid dependency on Qt, as lighter alternatives are possible. == Code copied from Android Gingerbread release As explained here https://stackoverflow.com/a/57112520 even older Android have `getifaddrs` implementations but doesn't make them accessible in the API, in particular the one included in Android Gingerbread https://android.googlesource.com/platform/libcore/+/refs/heads/gingerbread-release/luni/src/main/native/ifaddrs-android.h https://android.googlesource.com/platform/libcore/+/refs/heads/gingerbread-release/ is particularly easy to include in our code base and compile. This solution seems the best fitting and doesn't introduce dependency on Qt. Newer Android releases (expecially 11) have introduced multiple restrictions on network information access so we suggest you to prepare different APK for different API level in order to use the `getifaddrs` provided by Android NDK which deal gracefully with those restrictions as soon as available.