2

我在 Android 编程方面相当陌生,并计划使用 NFC 开发优惠券系统。我已经阅读了有关通过 Android 编程读取和写入 NFC 标签的内容,并了解了意图过滤器。

我的问题是,是否可以只对标签进行编程,以便它只运行我的应用程序,而不是其他任何应用程序。话虽如此,是否有可能使它无法被任何其他应用程序读取?我对标签的类型很模糊,希望有人能澄清这个问题。

4

3 回答 3

2

您可以使用特定的 mime 类型甚至标签类型来标记标签,并以您的应用程序可以获取这些标签的方式编写意图过滤器。但其他应用程序也可以复制您的意图过滤器并获得标签通知。

您可以尝试加密标签上的数据,以便只有您的应用程序可以读取它,但即使这样也远非完美无缺。有人可以轻松地从您的 APK 中解码密钥。您也可以加密您的 APK,但似乎仅在 Jelly Bean 及更高版本上受支持。

这完全取决于您愿意投入多少时间和精力来隐藏标签的内容,而不是您的目标受众愿意投入多少时间和精力来破解它。

于 2012-11-07T17:44:28.257 回答
0

当您将 NDEF 消息放在标签上时(请参阅Ndef),您可以在NdefMessage的末尾添加一个Android 应用程序记录。这将确保只启动您的应用程序。如果设备上未安装应用程序,用户将被重定向到 Play 商店应用程序进行安装(如果该应用程序在那里可用)。

于 2012-11-07T23:16:25.523 回答
0

我建议你使用

  1. Android应用程序记录(如果您想支持旧手机,则+ Mime 记录)
  2. 只有您了解的未知记录,使用私钥-公钥加密。

您可能也有兴趣看到签名记录之类的东西。

于 2012-11-08T08:53:12.320 回答