Hi Guys, Welcome to Proto Coders Point, In this Android Tutorial we will check out How to get mac address of android phone programmatically – find mac address android devices.
So let’s begin
Find MAC Address of android Device Programmatically
Step 1 : Create a new Android Project
Step 2 : Add required Permission
Then, to get MAC Address of any android device you need to add some permission like ACCESS WIFI STATE, INTERNET, ACCESS NETWORK STATE.
To add them:
In your Android Manifest.xml file add below uses permission, just before <application> tag begin
<uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Step 3: Create a method GetMacAddress
Now, create a method that help you in getting mac address of your android mobile device.
public String getMacAddress(){ try{ List<NetworkInterface> networkInterfaceList = Collections.list(NetworkInterface.getNetworkInterfaces()); String stringMac = ""; for(NetworkInterface networkInterface : networkInterfaceList) { if(networkInterface.getName().equalsIgnoreCase("wlon0")); { for(int i = 0 ;i <networkInterface.getHardwareAddress().length; i++){ String stringMacByte = Integer.toHexString(networkInterface.getHardwareAddress()[i]& 0xFF); if(stringMacByte.length() == 1) { stringMacByte = "0" +stringMacByte; } stringMac = stringMac + stringMacByte.toUpperCase() + ":"; } break; } } return stringMac; }catch (SocketException e) { e.printStackTrace(); } return "0"; }
Step 4: Call the above method
By calling above getMacAddress() you will get mac address of android device.
String mobile_mac_addres = getMacAddress(); //call the method that return mac address Log.d("MyMacIS",mobile_mac_address); // print the mac address on logcat screen
Here, we are calling getMacAddress() method and storing the MAC ADDRESS in a String Varaible.
How to get mac address of android phone programmatically – Complete Source Code
MainActivity.java
package com.example.getmacaddress; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Collection; import java.util.Collections; import java.util.List; public class MainActivity extends AppCompatActivity { String mobile_mac_address; TextView macaddress; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); macaddress = (TextView)findViewById(R.id.macaddress); mobile_mac_address = getMacAddress(); Log.d("MyMacIS",mobile_mac_address); macaddress.setText(mobile_mac_address); } public String getMacAddress(){ try{ List<NetworkInterface> networkInterfaceList = Collections.list(NetworkInterface.getNetworkInterfaces()); String stringMac = ""; for(NetworkInterface networkInterface : networkInterfaceList) { if(networkInterface.getName().equalsIgnoreCase("wlon0")); { for(int i = 0 ;i <networkInterface.getHardwareAddress().length; i++){ String stringMacByte = Integer.toHexString(networkInterface.getHardwareAddress()[i]& 0xFF); if(stringMacByte.length() == 1) { stringMacByte = "0" +stringMacByte; } stringMac = stringMac + stringMacByte.toUpperCase() + ":"; } break; } } return stringMac; }catch (SocketException e) { e.printStackTrace(); } return "0"; } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/macaddress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>