Get external(public) IPv4 address programmatically
1.Add dependency in your app's build.gradle
compile(project(':myexternalip'))
2.Internet permission is necessary
uses-permission android:name="android.permission.INTERNET"
3.Must be run Non-UI thread
new Thread(new Runnable() {
@Override
public void run() {
Log.d(TAG, "my external ip: " + MyExternalIp.getIp());
Log.d(TAG, "my external ip: " + MyExternalIp.getIpFrom("http://whatismyip.org/"));
Log.d(TAG, "my external ip: " + MyExternalIp.getCachedIp());
}
}).start();