我需要使用Java获取我的Android设备的MAC地址.我在网上搜索过,但是我找不到任何有用的东西.
希望在Android M上获取Wifi MAC地址的Android开发人员可能遇到了以下问题:获取MAC地址的标准Android OS API返回虚假MAC地址(02:00:00:00:00:00)而不是真实MAC地址值.
获取Wifi MAC地址的常规方法如下:
final WifiManager wifiManager = (WifiManager) getApplication().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
final String wifiMACaddress = wifiManager.getConnectionInfo().getMacAddress();
Run Code Online (Sandbox Code Playgroud) 我有一个可以在一部手机上运行的 Android 应用程序。为了在单个设备上工作,我需要获取 MAC 地址或 Android ID。我决定获取 MAC 地址,因为应用程序需要连接到指定的 WiFi 网络。
如何从 Android 设备获取 MAC 地址?
WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = manager.getConnectionInfo();
String address = info.getMacAddress();
Run Code Online (Sandbox Code Playgroud)
目前我正在使用这个,但它不稳定。
当应用程序重新启动时,它会返回02:00:00:00:00:00.并崩溃。
I'm having an issue with retrieving the MAC address of the device programatically, before anyone mentions anything about other posts I have read them already such as: How to find MAC address of an Android device programmatically
但是我尝试在我自己的应用程序中使用该代码并使用简单的 log.d 对其进行测试,结果发现它没有返回任何内容。“看看这是否有效”的消息,但没有别的。所以我假设mac地址为空。
Log.d("seeing if this works", macAddress2);
Run Code Online (Sandbox Code Playgroud)
我所做的代码如下所示:
//Set onclick listener for the Get Mac Address button
getMac.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wInfo = wifiManager.getConnectionInfo();
String macAddress2 = wInfo.getMacAddress();
macAddress.setText(macAddress2);
}
});
Run Code Online (Sandbox Code Playgroud)