我想在我的应用程序中获得唯一的设备 ID。但根据谷歌文档称,Android 10 添加了对不可重置标识符的限制。
我不想要随机 ID。我想获得唯一的 ID,以便我可以识别我的 API 受到攻击的设备。这样我就可以管理我的会话了。除了 Secure.android_id 之外,是否还有另一个唯一的 id,它对于 android 来说是唯一的?或者有什么方法可以访问Android 10中的Secure.android_id。
无论您尝试连接wifi时是否使用随机地址,您都可以使用以下代码获取wifi mac地址(对于某些设备,例如小米,这将返回wifi-direct mac地址),并且无论 wifi 是否打开或关闭。
我使用了下面链接中的一种方法,并添加了一个小修改来获取确切的地址而不是随机地址:
Android 6.0获取MAC地址 https://stackoverflow.com/questions/33159224/getting-mac-address-in-android-6-0/39288868#39288868
public static String getMacAddr() {
StringBuilder res1 = new StringBuilder();
try {
List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface nif : all) {
if (!nif.getName().equalsIgnoreCase("p2p0")) continue;
byte[] macBytes = nif.getHardwareAddress();
if (macBytes == null) {
continue;
}
res1 = new StringBuilder();
for (byte b : macBytes) {
res1.append(String.format("%02X:",b));
}
if (res1.length() > 0) {
res1.deleteCharAt(res1.length() - 1);
}
}
} catch (Exception ex) {
}
return res1.toString();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)