- Get Bluetooth MAC Address via adb [duplicate]
- 4 Answers 4
- 1. Find the device name using:
- 2. Get the mac address for the first device:
- Что такое адрес Bluetooth в Android и как его узнать
- Что такое адрес сетевого адаптера
- Информация о сетевом модуле
- Что такое адрес Bluetooth в Android и как его узнать: Видео
- Get the MAC address of bluetooth adapter in Android
- 3 Answers 3
- How to get Bluetooth MAC Address on Android
- MAC address of bluetooth or wifi of an android device
- 2 Answers 2
Get Bluetooth MAC Address via adb [duplicate]
Please help me to retrieve the Bluetooth MAC Address of my Galaxy S3 phone connected via USB port. My device is rooted.
i have connect my device and run «adb devices» and it’s present. Now i want retrieve the bluetooth mac address.
did you try any of the tricks mentioned here .. alexandre.alapetite.fr/doc-alex/mobile-bluetooth-mac/… or alexandre.alapetite.fr/doc-alex/mobile-bluetooth-mac-qrcode? these seem agnostic to whether the phone is rooted or not
4 Answers 4
Running netcfg will show you all interfaces on the system along with their MAC addresses.
adb shell cat /sys/class/net/wlan0/address
The best, no-nonsense, answer. ifconfig doesn’t list the MAC address, there’s no netcfg on my Moto G 2015.
What I usually do to get the mac address of the WiFi interface of an Android device (that is connected to my PC through a USB port) is following these easy steps:
1. Find the device name using:
Results usually looks like:
List of devices attached 4e7354af device 1f97033e device
In this case we have two devices connected 4e7354af and 1f97033e . Let’s work on the first one: 4e7354af
2. Get the mac address for the first device:
adb -s 4e7354af shell "ip addr show wlan0 | grep 'link/ether '| cut -d' ' -f6"
The result will be looks like:
In previous line, we used the -s option of the adb command to specify the serial number. Then we call the shell command to indicate that we will run a Linux command. Finally, we run the command: ip addr show wlan0 | grep ‘link/ether ‘| cut -d’ ‘ -f6 this command can also be used in Linux if its interface has the same name as wlan0 .
I generally use this approach because I have many devices connected to my testing environment. Good luck guys.
Note: If you run commands like cat /sys/class/net/wlan0/address you will get an error like cat: /sys/class/net/wlan0/address: Permission denied due to the security policies of Android.
Что такое адрес Bluetooth в Android и как его узнать
В наше время каждый знает, что такое Bluetooth. Более того, практически каждый умеет им пользоваться. Но мало кто углублялся в эту тему и пытался понять, как работает беспроводная связь. В этой статье мы разберем, что такое Bluetooth адрес в Android-устройствах, зачем он нужен и где его найти.
Что такое адрес сетевого адаптера
Сразу же стоит отметить, что Bluetooth – это такой же сетевой адаптер, как и Wi-Fi модуль или сетевая карта. Принцип построения связи во всех этих технологиях схож, отличия заключаются только в стандартах связи, скорости передачи данных и радиусе покрытия (касается только беспроводных адаптеров).
Итак, как и любой другой сетевой модуль, Bluetooth также имеет свой локальный MAC-address, например, C5:87:BR:7W:H3:40.
Это локальный адрес Bluetooth в Android-гаджетах. Конечно же, вы должны понимать, что каждому девайсу назначаются уникальные значения. То есть вы не сможете найти два устройства с одинаковыми адресами. Это необходимо для того, чтобы гаджеты могли друг друга обнаружить и идентифицировать. Кроме этого, при передаче информации нужен идентификатор, который определит получателя.
Например, когда вы отправляете письмо, вы указываете адрес проживания получателя (или в случае с электронной почтой вы указываете электронный адрес). Такой же принцип работает и с Bluetooth связью. То есть, по MAC-address Bluetooth определяется девайс, благодаря чему появляется возможность выполнить сопряжение.
Как правило, пользователям даже не нужно знать эти данные, так как гаджеты в подавляющем большинстве случаев автоматически определяют все нужные сведения. При сопряжении устройств вы видите только имя того или иного телефона (планшета или ноутбука), но под именем скрыты те самые MAC-addresses.
Другими словами, например, сопрягаясь для передачи файлов, гаджеты взаимодействуют именно по своим уникальным MAC-address. Как уже говорилось, пользователю необязательно их знать, но иногда это просто необходимо. Вот мы и подошли к вопросу, как узнать Bluetooth адрес в Android
Информация о сетевом модуле
Найти всю необходимую информацию о тех или иных модулях в телефоне или планшете на Android достаточно легко. При этом вам не придется искать и устанавливать никаких дополнительных приложений. Войдите в меню вашего смартфона (или планшета). Найдите ярлык «Настройки», как правило, он сделан в виде шестеренки.
Открываем настройки. Далее на более старых версиях Android следует перелистать страницу в самый низ. В самом конце вы увидите пункт «Об устройстве».
На новых версиях Android вам нужно перейти во вкладку «Опции» и опустить меню в самый низ. Здесь также будет пункт «Об устройстве».
Открываем его. Далее перейдите в категорию «Состояние». Осталось только найти строку «Bluetooth». Под ней вы увидите MAC-address.
Стоит помнить, что Bluetooth при этом должен быть включен. В противном случае в указанной строке будет отображаться надпись «Недоступно».
Как видите, все очень легко и просто. Но, как узнать MAC не своего, например, смартфона, а девайса, к которому нужно подключиться? Здесь также нет ничего сложного, но нужно предварительно подготовиться.
Подключаемся к интернету, открываем Play Market и в поисковой строке пишем название приложения – Bluetooth Address Finder. Выберите из результатов одноименное приложение и установите его. Далее открываем программу и нажимаем кнопку «Begin searching procedure». Ниже появится список MAC-address всех доступных вам на текущий момент девайсов, на которых включен Bluetooth.
Что такое адрес Bluetooth в Android и как его узнать: Видео
Get the MAC address of bluetooth adapter in Android
I’m trying to get the MAC address of bluetooth in my android device. So I’m using the following method:
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); String macAddress = mBluetoothAdapter.getAddress();
The address returned is 02:00:00:00:00:00 . I’ve seen questions and posts saying that it’s not possible anymore to get your MAC address in android unless your application is a System Application. So what if I really need to get the MAC address of my phone?? It’s impossible to do it or what? Note: I know this question is asked lots of times on SO, but most of the answers are out of date.
3 Answers 3
For security reasons this functionality is not available on Android since Android version 6.0 [source]:-
To provide users with greater data protection, starting in this release, Android removes programmatic access to the device’s local hardware identifier for apps using the Wi-Fi and Bluetooth APIs. The WifiInfo.getMacAddress() and the BluetoothAdapter.getAddress() methods now return a constant value of 02:00:00:00:00:00.
The reason for this is to stop random applications gaining information about the phone’s hardware addresses therefore violating the privacy/data protection.
Yes it was made impossible because it can be an attack vector. The only workaround I can think of is if you downgrade your OS to pre Android v6.0. Why do you need your mac address? There might be another way to achieve what you want without accessing the mac address.
Let’s say I have a phone with MAC Address X, and I have another nearby device with MAC address B. When the two devices are nearby each other. I was able to get the MAC address of the other device using BluetoothDevice and getAddress() method from ScanResult.getDevice() . So what I still need is to catch my own device MAC address so that in the backend I save each user with his MAC address, and when I catch it in bluetooth, I know who’s nearby me. I really don’t know if I made myself clear it;s a little bit complicated to explain, sorry for the long comment.
I think I understand your application, but as you can imagine this would be undesirable for Google because your app will know the location of any user that comes in close range with you, therefore violating their privacy. Have a look at this article which explains something a bit similar to your idea and its challenges:- wyldnetworks.com/wyld-mesh-covid-19-proximity-contact-tracing
What Youssif Saeed said in the other answer was correct. Android won’t let us get the MAC address anymore.
Brief description about what I want:
Let’s say I have a phone with MAC Address X, and I have another nearby device with MAC address B. When the two devices are nearby each other. I was able to get the MAC address of the other device using BluetoothDevice and getAddress() method from ScanResult.getDevice(). So what I still need is to catch my own device MAC address so that in the backend I save each user with his MAC address, and when I catch it in bluetooth, I know who’s nearby me
Here’s the workaround I’ve done in order to send some data between near devices.
I found something called Nearby Messages API. It is available for Android and iOS and very easy to implement. Now I’m able to catch near devices with my application installed on them, and send a unique Id generated by the application to identify the user.
How to get Bluetooth MAC Address on Android
But, I my app has stopped unexpectedly. What is wrong with my code? using Android 2.3.6 (Samsung Galaxy mini) Update: I have used this code inside a Class extended AsyncTask . StackTrace:
09-04 01:09:43.671: E/AndroidRuntime(12372): FATAL EXCEPTION: AsyncTask #1 09-04 01:09:43.671: E/AndroidRuntime(12372): java.lang.RuntimeException: An error occured while executing doInBackground() 09-04 01:09:43.671: E/AndroidRuntime(12372): at android.os.AsyncTask$3.done(AsyncTask.java:200) 09-04 01:09:43.671: E/AndroidRuntime(12372): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274) 09-04 01:09:43.671: E/AndroidRuntime(12372): at java.util.concurrent.FutureTask.setException(FutureTask.java:125) 09-04 01:09:43.671: E/AndroidRuntime(12372): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308) 09-04 01:09:43.671: E/AndroidRuntime(12372): at java.util.concurrent.FutureTask.run(FutureTask.java:138) 09-04 01:09:43.671: E/AndroidRuntime(12372): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 09-04 01:09:43.671: E/AndroidRuntime(12372): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 09-04 01:09:43.671: E/AndroidRuntime(12372): at java.lang.Thread.run(Thread.java:1019) 09-04 01:09:43.671: E/AndroidRuntime(12372): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 09-04 01:09:43.671: E/AndroidRuntime(12372): at android.os.Handler.(Handler.java:121) 09-04 01:09:43.671: E/AndroidRuntime(12372): at android.bluetooth.BluetoothAdapter$1.(BluetoothAdapter.java:1117) 09-04 01:09:43.671: E/AndroidRuntime(12372): at android.bluetooth.BluetoothAdapter.(BluetoothAdapter.java:1117) 09-04 01:09:43.671: E/AndroidRuntime(12372): at android.bluetooth.BluetoothAdapter.getDefaultAdapter(BluetoothAdapter.java:437) 09-04 01:09:43.671: E/AndroidRuntime(12372): at org.radyabi.app.StepActivity$CollectDeviceCodes.doInBackground(StepActivity.java:119) 09-04 01:09:43.671: E/AndroidRuntime(12372): at org.radyabi.app.StepActivity$CollectDeviceCodes.doInBackground(StepActivity.java:1) 09-04 01:09:43.671: E/AndroidRuntime(12372): at android.os.AsyncTask$2.call(AsyncTask.java:185) 09-04 01:09:43.671: E/AndroidRuntime(12372): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 09-04 01:09:43.671: E/AndroidRuntime(12372): . 4 more
MAC address of bluetooth or wifi of an android device
I am writing a program about the communication between android device and PC. Is there any way to get the MAC address of BLUETOOTH or WiFi of an android device, when the Bluetooth or WiFi is turned OFF? If so, how?
However, the MAC address is already burned in the phone’s hardware when leaving the factory, isn’t it? @MichaelPetrotta
I’d make it more clear, I want write a program in the android device to get the bluetooth or wifi’s MAC address(turned off), any idea? @MichaelPetrotta
2 Answers 2
this works for me with wifi on and off i not try the bluetooth
WifiManager wimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE); String address = wimanager.getConnectionInfo().getMacAddress(); Log.d("TOKEN", address);
Yes, you can get MAC addresses even when Bluetooth / WiFi is OFF.
Getting bluetooth information is as easy as this:
BluetoothAdapter.getDefaultAdapter().getAddress(); // MAC address BluetoothAdapter.getDefaultAdapter().isEnabled(); // true if ON
No need to use Context , yay!
And to complete the answer.. WiFi state:
final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); wifiManager.getConnectionInfo().getMacAddress(); // MAC address wifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED; // true if ON