0

Hi i want to get the mac address on my android device. i use bridge from react native to java and i got 02:00:00:00:00:00 This is my java code:


package com.deviceinfo.MacAddress;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback;


public class MacAddressModule extends ReactContextBaseJavaModule {

    public MacAddressModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    public String getName() {
        return "MacAddressModule";
    }

    @ReactMethod
    public void getMacAddress(Callback callback) {
        try {
            Context context = getReactApplicationContext();
            WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
            String macAddress = wifiInfo.getMacAddress();
            callback.invoke(macAddress);
        } catch (Exception e) {
            callback.invoke(null);
        }
    }
}

And here How i imported java file from react native:

 const { MacAddressModule } = NativeModules;
  MacAddressModule.getMacAddress((macAddress) => {
          console.log(macAddress);
        });

AndroidManifest.xml: i have these permissions: <uses-permission

android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

      <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.INTERNET"/>

i have searched a lot on the internet but i didn't find any useful information

  • 1
    Does this answer your question? [getMacAddress() returns null in Android 11? How to get mac address for Android 11?](https://stackoverflow.com/questions/68471691/getmacaddress-returns-null-in-android-11-how-to-get-mac-address-for-android-1) – user18309290 Jul 22 '23 at 04:33
  • No. this doesn't answer my question – بتوبيو تيويي Jul 23 '23 at 11:46

1 Answers1

0

Why would you do that? Mobile platform policies advise to steer clear from using such method unless you have a clear reason why (even if you do, they might still not allow it,lol). Here's one reference https://blog.appcensus.io/2022/02/03/developer-tips-whats-the-deal-with-mac-addresses/