https://www.android-examples.com/get-display-ip-address-of-android-phone-device-programmatically/
In this tutorial we are getting mobile phone device ip address while phone is connected to Mobile data connection or WiFi connection. This code supports both connection and get ip address from both networks. So here is the complete step by step tutorial for Get/Display IP address of android phone device programmatically.
Please add below all three permissions inside Androidmanifest.xml file.
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
How to Get/Display IP address of android phone device programmatically.
Code for MainActivity.java file.
package com.displayipaddress_android_examples.com; import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumeration; import android.app.Activity; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.WifiManager; import android.os.Bundle; import android.text.format.Formatter; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { Button button; TextView textview; String IPaddress; Boolean IPValue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)findViewById(R.id.button1); textview = (TextView)findViewById(R.id.textView1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub NetwordDetect(); } }); } //Check the internet connection. private void NetwordDetect() { boolean WIFI = false; boolean MOBILE = false; ConnectivityManager CM = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[] networkInfo = CM.getAllNetworkInfo(); for (NetworkInfo netInfo : networkInfo) { if (netInfo.getTypeName().equalsIgnoreCase("WIFI")) if (netInfo.isConnected()) WIFI = true; if (netInfo.getTypeName().equalsIgnoreCase("MOBILE")) if (netInfo.isConnected()) MOBILE = true; } if(WIFI == true) { IPaddress = GetDeviceipWiFiData(); textview.setText(IPaddress); } if(MOBILE == true) { IPaddress = GetDeviceipMobileData(); textview.setText(IPaddress); } } public String GetDeviceipMobileData(){ try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface networkinterface = en.nextElement(); for (Enumeration<InetAddress> enumIpAddr = networkinterface.getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); } } } } catch (Exception ex) { Log.e("Current IP", ex.toString()); } return null; } public String GetDeviceipWiFiData() { WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE); @SuppressWarnings("deprecation") String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress()); return ip; } }
Code for activity_main.xml layout file.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.displayipaddress_android_examples.com.MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="188dp" android:text="IP Address display Here" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:layout_marginTop="22dp" android:text="Click here to get current device " /> </RelativeLayout>
Code for AndroidManifest.xml file.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.displayipaddress_android_examples.com" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Screenshot:
Comments
Post a Comment