Android:如何使NFC标签仅对用户可用并且对我可写?

Wai*_*hat 5 tags android readonly nfc ndef

我有一个设计个性化标签的应用程序,当Android手机检测到该标签时,它将启动具有某些内容的另一个应用程序。一切正常,我知道如何制作一个只读的nfc标签。问题是,我想让NFC标签仅可由其他应用程序的用户读取。但是我也希望,如有必要,可以修改这些标签以进行重写。但是我想防止用户自己做。这就是为什么ndef.makeReadOnly()不适合我的原因。

有谁能帮助我吗?

NFC*_*guy 5

这在某种程度上取决于您将使用的确切标签。Android用来存储NDEF消息的标准NFC论坛标签类型没有为此定义的特定功能。因此,Android API也不提供它。只有makeReadOnly()在大多数情况下使标记不可逆地变为只读。

但是,当您查看实际实现所需NFC功能的标签内的芯片时,它们通常会提供更多功能。这些额外的功能可能包括用于写入的访问控制,从而可以根据需要配置芯片。

一些示例(我最熟悉的都是NXP制造的):

  1. MIFARE Classic:存储扇区受2个密钥保护。可以将一个键配置为只读,而将另一个键用于写入内存。注意:并非所有的Android设备都可以访问这些设备!
  2. MIFARE Ultralight C:可以提供附加的密码保护以防止覆盖
  3. MIFARE DESFire:可以配置多个身份验证密钥和访问权限,包括不带密钥的只读访问
  4. ICODE SLI(X)-S:可以提供附加的密码保护以防止覆盖

这些标签中的大多数通常都可以在线销售。但是,您将不得不在Internet上寻找一些信息,以收集有关如何完成配置的所有信息。大多数情况下都有PC软件可用。