我想在我的应用程序中获得一个唯一的设备id。但根据谷歌文档,Android10增加了对不可重置标识符的限制。
我不想要随机的id。我想要获得唯一的id,这样我就可以识别我的API被击中的设备。这样,我就可以管理我的会话了。除了Secure.android_id之外,安卓还有没有其他唯一的id呢?或者,有没有办法在Android10中访问Secure.android_id?
发布于 2020-08-06 02:33:05
您将使用以下代码获得wifi mac地址(对于小米等某些设备,这将返回wifi-direct mac地址),无论您在尝试连接wifi时是否使用了随机地址,也不管wifi是否打开或关闭。
我使用了下面链接中的一种方法,并添加了一个小的修改来获得确切的地址,而不是随机的地址:
Getting MAC address in Android 6.0
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();
}
发布于 2020-03-03 16:56:57
你可以通过这个获取设备的Android唯一Id,为此你需要获取android.permission.READ_PHONE_STATE
private String android_id = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
发布于 2020-03-03 16:50:48
根据我的想法,你应该使用下面的代码来获得唯一的Id -
String uniqueID = UUID.randomUUID().toString();
上面的代码不需要任何来自用户的运行时权限来访问设备id,并且总是生成唯一的id.you,可以将该uniqueID映射到用户数据或根据需要进行操作。
谢谢
https://stackoverflow.com/questions/60501286
复制相似问题