Indy's native support for SSL/TLS is broken (well, incomplete) on Android 6+, because Google dropped support for OpenSSL in Android 6, switching to their own internal modified fork named BoringSSL:
Android 6.0 Changes - BoringSSL
Android is moving away from OpenSSL to the BoringSSL library. If you’re using the Android NDK in your app [which Delphi Android apps do], don't link against cryptographic libraries that are not a part of the NDK API, such as libcrypto.so and libssl.so. These libraries are not public APIs, and may change or break without notice across releases and devices. In addition, you may expose yourself to security vulnerabilities. Instead, modify your native code to call the Java cryptography APIs via JNI or to statically link against a cryptography library of your choice.
TIdSSLIOHandlerSocketOpenSSL does not work with BoringSSL, and Indy does not have another SSLIOHandler class for BoringSSL at this time. This is an open issue that has not been resolved yet:
#166 Support BoringSSL on Android 6
Until that is resolved (and there is no ETA on that), you will have to either:
deploy OpenSSL binaries for Android (available from https://indy.fulgan.com/SSL/) with your Android app, and instruct Indy where to load them from at runtime. But depending on device and system configuration, this may or may not work. People have had mixed results on this matter.
write your own TIdSSLIOHandlerSocketBase-derived class that uses Java socket APIs instead of C library BSD sockets and OpenSSL.