0

我需要标记对象以将它们与单个唯一客户相关联。Java API 中是否有任何属性可用于唯一标识客户端?

  • IP地址不合适;不同的专用网络上可能有多个客户端碰巧分配了相同的地址。
  • SyncUser不工作;给定用户可以同时从多个客户端登录。
  • SyncSession直觉上感觉是对的,但没有任何标识符属性。
  • ObjectServerSession.nativeSessionPointer可能是我正在寻找的东西,但没有记录,并且在任何情况下都无法访问。

编辑:hashCode()经过反思,SyncUser's or可以满足相同的需求toJson(),如果我可以保证每个用户只登录一次。

4

1 回答 1

0

在此处发布功能请求后,Realm 的好心人建议我改用 UUID。

这个关于标识符的链接特别好读。

无论如何,目前看来最好的答案是遵循Android instance-ID implementation instructions

获取 IID 的代码最终如下所示:

db.iid = InstanceID.getInstance(this).getId();

值得注意的是,没有必要为了获得该功能而包含所有 Google Play 服务。以下依赖关系很好,并且没有突破 64k DEX 限制。

compile 'com.google.android.gms:play-services-iid:10.0.1'
于 2016-12-02T17:50:26.753 回答