使用 NTAG213 NFC 识别健身房会员的工作流程
Workflow for using NTAG213 NFC to Identify Gym Members
为了使用配备 NTAG213 NFC 的腕带来验证健身房会员的身份,我将开发的一般工作流程是什么。
目前在我们的数据库中有一个“CardCode”字段。实际上它被命名为条形码,但那是因为当前的身份验证方法是向与唯一成员相对应的扫描仪显示条形码。
一般工作流 NTAG213 是我将此会员识别信息“写入”标签,然后当该会员尝试签到时,它会尝试读取此字段。
我以前在无线电技术方面的经验是 RFID 标签,这些标签会由制造商预先编写,带有站点代码和卡代码。不同的供应商对站点代码、卡代码和奇偶校验位的位有不同的安排 - 因此您必须知道位格式才能读取标签并验证会员。
我感觉 NTAG213 更像一个磁盘,我使用 MFG 的密码来写入 NTAG213,我的读者使用该信息进行身份验证。我想对于这种类型的技术来说,让 MFG 预先编写一些东西是不合理的吗?真不知道流量是什么
作为奖励,任何带有 android.nfc 的示例代码都很棒(我的目标是 Newland Nquire 304 (Android Kitkat 4.4)
请指教
一个好的起点是 Tag's datasheet
在低级别,标签就像一个 4 字节宽、长度可变的二维内存数组。
因为它符合 NFC Type 2 标准,所以您可以使用 NFC 标准 NDEF 数据编码格式,并且各种 OS 有写入 NDEF 编码数据的方法,您不必担心数据是否正确地放入二维内存数组。
大多数卡片出厂时都是空白的(但有些供应商可以付费为您添加数据)。
虽然 NTAG213 通常出厂时没有设置密码,但您必须自己设置。可以为写操作或读写操作设置密码。
卡片也可以设为 NDEF 只读,但我不建议这样做,而是使用密码。
您如何使用它们取决于所需的安全级别(以阻止人们克隆卡片以共享一个健身房会员资格)以及您是否希望客户读取他们自己的标签,或者是否只需要某些硬件来阅读被严格控制的标签。
一般我会把可以read/write的硬件限制在标签上,然后可以设置读写操作的密码。
那么会有2个工作流程。
新成员
- 获取空白标签
- 配置读写密码
- 使用密码验证
- 为 Ndef 格式化卡
- 使用一个或多个 Ndef 记录在卡上编码你想要的数据,至少,这应该是你自己的唯一 ID(不要使用标签的 UID,因为它们不是唯一的,可以被克隆并且不受保护密码)
健身房签到
- 使用密码验证
- 从标签中读取数据(至少是您写入标签的唯一ID)
我建议你使用 ènableReaderMode
Android API 来标记检测,一些代码在
有很多示例使用较旧的 Android API enableForegroundDispatch
但这不太可靠,尤其是在写入数据时。
总的来说,在决定如何编写代码之前,您需要确定要在 Tag 上存储什么以及如何使用它,否则问题太大,无法详细回答。
为了使用配备 NTAG213 NFC 的腕带来验证健身房会员的身份,我将开发的一般工作流程是什么。
目前在我们的数据库中有一个“CardCode”字段。实际上它被命名为条形码,但那是因为当前的身份验证方法是向与唯一成员相对应的扫描仪显示条形码。
一般工作流 NTAG213 是我将此会员识别信息“写入”标签,然后当该会员尝试签到时,它会尝试读取此字段。
我以前在无线电技术方面的经验是 RFID 标签,这些标签会由制造商预先编写,带有站点代码和卡代码。不同的供应商对站点代码、卡代码和奇偶校验位的位有不同的安排 - 因此您必须知道位格式才能读取标签并验证会员。
我感觉 NTAG213 更像一个磁盘,我使用 MFG 的密码来写入 NTAG213,我的读者使用该信息进行身份验证。我想对于这种类型的技术来说,让 MFG 预先编写一些东西是不合理的吗?真不知道流量是什么
作为奖励,任何带有 android.nfc 的示例代码都很棒(我的目标是 Newland Nquire 304 (Android Kitkat 4.4)
请指教
一个好的起点是 Tag's datasheet
在低级别,标签就像一个 4 字节宽、长度可变的二维内存数组。
因为它符合 NFC Type 2 标准,所以您可以使用 NFC 标准 NDEF 数据编码格式,并且各种 OS 有写入 NDEF 编码数据的方法,您不必担心数据是否正确地放入二维内存数组。
大多数卡片出厂时都是空白的(但有些供应商可以付费为您添加数据)。
虽然 NTAG213 通常出厂时没有设置密码,但您必须自己设置。可以为写操作或读写操作设置密码。
卡片也可以设为 NDEF 只读,但我不建议这样做,而是使用密码。
您如何使用它们取决于所需的安全级别(以阻止人们克隆卡片以共享一个健身房会员资格)以及您是否希望客户读取他们自己的标签,或者是否只需要某些硬件来阅读被严格控制的标签。
一般我会把可以read/write的硬件限制在标签上,然后可以设置读写操作的密码。
那么会有2个工作流程。
新成员
- 获取空白标签
- 配置读写密码
- 使用密码验证
- 为 Ndef 格式化卡
- 使用一个或多个 Ndef 记录在卡上编码你想要的数据,至少,这应该是你自己的唯一 ID(不要使用标签的 UID,因为它们不是唯一的,可以被克隆并且不受保护密码)
健身房签到
- 使用密码验证
- 从标签中读取数据(至少是您写入标签的唯一ID)
我建议你使用 ènableReaderMode
Android API 来标记检测,一些代码在
有很多示例使用较旧的 Android API enableForegroundDispatch
但这不太可靠,尤其是在写入数据时。
总的来说,在决定如何编写代码之前,您需要确定要在 Tag 上存储什么以及如何使用它,否则问题太大,无法详细回答。