android - 使用 nfc 解锁应用程序

标签 android nfc

我是 android 的新手,我开发了一个应用程序储物柜。现在,我希望我正在锁定的应用程序应该使用无需手动输入密码的 nfc 标签解锁。我该如何执行它?

最佳答案

由于您已经拥有应用程序储物柜部分,我假设当用户尝试启动应用程序时,您的应用程序储物柜将改为显示其解锁 Activity ,要求用户输入密码。

在该解锁 Activity 中,您现在可以(代替或除了询问密码之外)要求用户扫描 NFC 标签。因此,您的 Activity 将注册 NFC foreground dispatch system并等待 NFC 标签被扫描(或用户手动输入密码)。一旦您的 Activity 通过前台调度系统接收到 NFC 标签发现 Intent ,您就可以与标签通信,并根据此通信的结果做出访问控制决策。

至于您应该使用什么 NFC 标签/非接触式智能卡以及您应该在上面存储什么信息:这是一个很难回答的问题!这在很大程度上取决于您的安全要求。在最简单的情况下,您可以根据标签的(唯一)标识符做出决定。但是,您必须记住,标识符既不是唯一的也不是不可克隆的。作为替代方案,您可以使用(真实的)NFC 标签并在其上存储 NDEF 消息。该 NDEF 消息可能包含您的应用程序用作解锁凭证的一些标识符/密码。同样,NFC 标签是公开可读的,因此 NDEF 消息可以复制/克隆到另一个标签。支持 NFC 论坛标签类型之外的加密功能的标签可以实现进一步的安全性,但对于 StackOverflow 格式的讨论肯定是广泛的。

关于android - 使用 nfc 解锁应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23081560/

相关文章:

android - ListView 在设置背景后不显示 onclick 颜色

android - 如何检查 NTAG216 中的最大可用内存?

Xamarin IOS NFCNdefReaderSession.ReadingAvailable 为 false

java - 将 NFC 标签锁定到特定设备?

java - 如何知道 Google Play 游戏何时连接成功?

android - 将 Observable<Observable<Cursor>> 扁平化为 Observable<Cursor>

java - 如何对 3x3 的单选按钮网格进行分组?

java - Android如何以编程方式绘制圆角矩形形状

android - NfcManager 可用,但 NfcAdapter 始终为 null

android - Nexus S 上的 NFC : "TagLostException" when writing to unknown block on ISO 15693 Chip