我在 Android 编程方面相当陌生,并计划使用 NFC 开发优惠券系统。我已经阅读了有关通过 Android 编程读取和写入 NFC 标签的内容,并了解了意图过滤器。
我的问题是,是否可以只对标签进行编程,以便它只运行我的应用程序,而不是其他任何应用程序。话虽如此,是否有可能使它无法被任何其他应用程序读取?我对标签的类型很模糊,希望有人能澄清这个问题。
您可以使用特定的 mime 类型甚至标签类型来标记标签,并以您的应用程序可以获取这些标签的方式编写意图过滤器。但其他应用程序也可以复制您的意图过滤器并获得标签通知。
您可以尝试加密标签上的数据,以便只有您的应用程序可以读取它,但即使这样也远非完美无缺。有人可以轻松地从您的 APK 中解码密钥。您也可以加密您的 APK,但似乎仅在 Jelly Bean 及更高版本上受支持。
这完全取决于您愿意投入多少时间和精力来隐藏标签的内容,而不是您的目标受众愿意投入多少时间和精力来破解它。
当您将 NDEF 消息放在标签上时(请参阅Ndef),您可以在NdefMessage的末尾添加一个Android 应用程序记录。这将确保只启动您的应用程序。如果设备上未安装应用程序,用户将被重定向到 Play 商店应用程序进行安装(如果该应用程序在那里可用)。