Right now, the scan is sequential. You can reduce the total time by probing from multiple background threads - a single or a couple of IP addresses per
thread.
As Stephen says, a possibly faster way is running "/system/bin/ping -c1 <ip>", again from multiple threads. The -c1 means send just 1 packet, to reduce the time.
Run it using java.lang.ProcessBuilder. /system/bin/ping is part of stock android, and you don't need root to run it.
If you're really adventurous, I think you can possibly extract bits of relevant code from ping.c or arping.c (both are GPL open source), compile them as an NDK project into its own native library,
bundle that library into your APK, and call a ping/arping function from your app via JNI.
It's rather complex, but it may reduce the overhead of android having to launch many ping processes and reduce total time. I have not tried this, it's just a (remote and possibly high effort) possibility.