android12 获取mac
时间: 2023-08-22 10:03:40 浏览: 44
在 Android 12 上获取 MAC 地址需要使用新的 API,因为在 Android 12 中,获取 Wi-Fi MAC 地址的方式已经被限制了。可以使用下面的代码获取 MAC 地址:
```java
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
Network network = connMgr.getActiveNetwork();
if (network != null) {
final MacAddress macAddress = connMgr.getMacAddress(network);
if (macAddress != null) {
final String macString = macAddress.toString();
Log.d("MAC Address", macString);
}
}
```
需要注意的是,这个 API 需要在 AndroidManifest.xml 中添加 `android.permission.READ_PHONE_STATE` 权限。同时需要在 AndroidManifest.xml 文件中添加 `uses-permission` 权限:`<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>`。
相关问题
android 12 怎么能获取mac
在Android 12中,获取MAC地址的方法已经被限制,因为MAC地址可以被用于识别和跟踪设备,从而侵犯用户的隐私。如果您需要在应用程序中使用唯一标识符,则推荐使用Android ID或Ad ID。如果您非常需要获取MAC地址,可以在应用程序的清单文件中添加以下权限:
```
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
```
然后使用以下代码获取MAC地址:
```
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String macAddress = wifiInfo.getMacAddress();
```
但是请注意,由于Android 12的限制,即使您的应用程序具有此权限,也可能无法获取MAC地址。
android 12 获取mac 始终是02:00:00:00:00:00
从 Android 6.0 开始,Google 就限制了通过 Android API 获取 Wi-Fi MAC 地址的方式,而在 Android 12 及之后的版本中,获取 Wi-Fi MAC 地址的方法更加受限。在 Android 12 中,无论是使用 Android API 还是通过系统文件获取 Wi-Fi MAC 地址,都会返回一个固定的值 02:00:00:00:00:00。
这是因为 Wi-Fi MAC 地址是可以用于跟踪用户位置和行为的,而 Google 希望保护用户的隐私,避免第三方应用程序通过 MAC 地址来收集用户信息。如果您需要在 Android 12 中获取设备的唯一标识符,可以考虑使用 Android ID 或 Advertising ID 等其他标识符。