首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取设备指纹

如何获取设备指纹
EN

Stack Overflow用户
提问于 2021-06-12 02:57:22
回答 1查看 205关注 0票数 2

我正在尝试将支付API集成到我的应用程序中,其中一个必填字段是设备指纹。我已经用谷歌搜索过了,我得到的只是指纹扫描仪和触摸Id支持,而这并不是我需要的。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-12 20:44:59

实际上,也许你能做的最简单的事情不是获取或计算唯一的设备标识符,而是为你的应用程序的每个特定安装分配一个唯一的代码(因此,如果应用程序被卸载并重新安装,这个代码将会改变)。

我会试着给你举个例子。

在主类的init()方法中,可以添加以下代码:

代码语言:javascript
复制
// Register the device (assigning it an unique deviceId)
// The deviceId is used also by: https://www.codenameone.com/javadoc/com/codename1/io/Util.html#getUUID--
registerDevice();

您的registerDevice()实现可以设置deviceId来识别此应用程序安装。在这种情况下,最好和最可靠的解决方案是从您的服务器获取UUID,例如如下代码:

代码语言:javascript
复制
// Sets the device unique identifier
Rest.get(Server.getRestServerURL() + "/uniqueIdentifier").fetchAsString((Response<String> response) -> {
   String deviceId = response.getResponseData();
   Preferences.set("deviceId", deviceId);
   Log.p("DeviceId: " + deviceId, Log.INFO);
});

服务器端代码非常简单。在Java世界中,假设我们有一个Spring Boot服务器,代码可能是:

代码语言:javascript
复制
@GetMapping("/uniqueIdentifier")
@ResponseBody
public String uniqueIdentifier() {
   return UUID.randomUUID().toString().replace("-", "");
}

这个解决方案应该足够了。请注意,UUID必须是唯一的,但它们不是设计为不可预测的。你可以在这里看到关于这方面的讨论:https://stackoverflow.com/a/41156/1277576

或者,如果您的代码仅用于客户端,请仔细阅读以下Javadoc代码:https://www.codenameone.com/javadoc/com/codename1/io/Util.html#getUUID--

Util.getUUID()在其规范的文本表示中返回一个伪随机的通用唯一标识符。在大多数情况下,这可能就足够了。

这些只是基本的建议。显然,您需要开发代码,以便只请求一次deviceId。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67942266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档