我正在开发一款移动在线Android游戏。一些用户违反游戏规则,我需要阻止它们并限制在应用程序中使用某些功能。 我应该检索哪些参数来识别用户设备,然后将其添加到数据库中作为阻止?您在项目中使用哪些方法来实现此功能?
更新 现在我已经使用了IP地址和ANDROID_ID,但用户可以轻松更改这些参数
更新2。 我已经使用自己的用户系统来识别用户。用户需要使用电子邮件创建帐户。但问题是糟糕的用户制作新帐户并不断违反游戏规则。因此,目的是阻止这些用户设备阻止他们甚至使用被阻止的设备创建新帐户。
答案 0 :(得分:0)
据我了解,您想知道应该使用哪个参数来识别用户。
为此,最常见的方法是使用帐户系统,即。即使用e登录。 G。 Google Play , Facebook 等等,例如Firebase
也支持此功能。
您为用户分配了一些帐户ID,并且用户需要提供一些凭据才能访问它。 正如 @GabeSechan 所提到的, IP 不是一个好主意:"您可能会阻止整个塔。",因为不仅IP可以阻止多人,但IP也不是一成不变的。
ANDROID_ID
似乎并不理想,因为它不是静态的。如果你真的想要阻止用户,你必须实现某种身份识别。当然,他们可以创建一个新帐户,但是你阻止了另一个帐户。
根据我的阅读,我猜你没有开发一个登录的游戏是一个好习惯。我想它是某种"跳入式" 多人游戏,比如 Agar.io ,但除此之外登录应该是你的方式。
你可能会考虑看看像你这样的其他游戏,看看他们如果能解决这个问题怎么解决。
答案 1 :(得分:0)
答案 2 :(得分:0)
ANDROID_ID不是静态的也不是唯一的,如果用户更改帐户,它可以通过恢复出厂设置,root设备进行更改。有关详细信息,请参阅Google文档。并且不建议获得硬件ID。如果您仍想获得唯一ID,您可以获得wifi或蓝牙适配器的mac地址。 对于6+你不能使用WifiInfo.getMacAddress()方法和BluetoothAdapter.getDefaultAdapter()。getAddress()方法都将返回02:00:00:00:00:00 ..但仍有办法获得他们。你也可以找它。我不记得它是如何完成的但是我已经完成了但谷歌不推荐获得硬件ID。