[英]Android get unique id for device
我需要将应用程序订阅限制为每个用户一定数量的设备。 为此,我试图获取Android手机的唯一ID(硬件)。 我发现以下选项,但所有选项都有某些问题。 有没有解决这些问题的解决方案?
经过搜索和思考,我提出了以下解决方案。
MacID可以用作唯一ID。 即使在Wifi关机状态下,也可以使用权限android.permission.READ_PHONE_STATE
获得MacID。 我已经在少数设备中成功测试了这些设备,并且工作正常。 我的测试正在进行中,很快会在这里更新。
public static String getDeviceMacId(){
try {
List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface nif : all) {
if (!nif.getName().equalsIgnoreCase("wlan0")) continue;
byte[] macBytes = nif.getHardwareAddress();
if (macBytes == null) {
return "";
}
StringBuilder res1 = new StringBuilder();
for (byte b : macBytes) {
res1.append(String.format("%02X:",b));
}
if (res1.length() > 0) {
res1.deleteCharAt(res1.length() - 1);
}
return res1.toString();
}
} catch (Exception ex) {
//handle exception
}
return "";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.