Android 将mac替换为生成的字符串作为请求者标识符
我的应用程序的每个设备都需要一个唯一的字符串。应用程序向服务器发送请求,我需要服务器端的唯一标识符来识别请求者。我以前使用过设备的mac地址,但有人指出,使用mac会导致侵犯隐私。所以我现在决定生成一个字符串,而不是使用mac 你认为呢,我可以用Android 将mac替换为生成的字符串作为请求者标识符,android,Android,我的应用程序的每个设备都需要一个唯一的字符串。应用程序向服务器发送请求,我需要服务器端的唯一标识符来识别请求者。我以前使用过设备的mac地址,但有人指出,使用mac会导致侵犯隐私。所以我现在决定生成一个字符串,而不是使用mac 你认为呢,我可以用getSessionId()替换get\u mac\u address(),并确保该字符串在数据库中只出现一次吗 代码: private String get_mac_address() { WifiManager wifiManager = (
getSessionId()
替换get\u mac\u address()
,并确保该字符串在数据库中只出现一次吗
代码:
private String get_mac_address() {
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wInfo = wifiManager.getConnectionInfo();
String macAddress = wInfo.getMacAddress();
return macAddress;
}
public void getSessionId() {
SecureRandom random = new SecureRandom();
sessionId = new BigInteger(130, random).toString(32);
}
我建议您访问此页面,获取android开发者博客上的一些信息,该博客用于识别应用程序安装: 下面是使用ANDROID_ID的一部分。请仔细阅读 您还可以组合来自用户和设备的ID,以生成唯一的字符串。它还消除了具有相同设备id的多个用户的可能性 类似于
[SHA1/MD5的用户\u id/用户\u电子邮件]\u[device\u id]
有关此问题的更多详细信息,请浏览以下问题。这肯定会对您有所帮助:您指的是“用户”还是“设备”?这是一个巨大的差异,你说“用户”,但你目前的方法(MAC地址)实际上是每个“设备”。很多人拥有不止一台设备。不管怎样,看看@Tigger:是的,我指的是设备,而不是用户。谢谢@跳跳虎:我可以在不侵犯隐私的情况下使用这个Android吗?用户是否必须同意此条款?