【问题标题】:Android NFC still weak of API on 4.0.3Android NFC 在 4.0.3 上的 API 仍然很弱
【发布时间】:2012-07-30 11:04:36
【问题描述】:

我发现了 Android NFC 的许多弱点:

 ndef.connect() 

不适用于 NFC 手机本身,仅适用于标签。其他手机靠近后无法查看连接状态。

NDEF 不能以两种方式交互发送/接收。在设备上,点击屏幕发起消息发送,然后断开连接,无法立即取回数据。

NFC api 不支持卡片模式。这就是弱点。有很多情况需要手机充当 RFID 卡。其中,有时不需要安全元件。一旦 UID 可用,服务器端就可以进行身份​​验证和其他操作。

我想问在NDEF消息发送或接收完成后如何检查连接状态?

【问题讨论】:

  • 检查 4.1,NFC 中包含的新类和方法很少
  • 你要什么?
  • 两部NFC手机不断靠近时如何查看连接状态?

标签: android nfc ndef android-beam


【解决方案1】:

您可以使用NfcAdapter.setOnNdefPushCompleteCallback() 注册应用程序的 Activity 以在通过 Android Beam 完成 NDEF 推送时接收回调。

【讨论】:

  • 这并不意味着它可以立即回复发件人。并且 setOnNdefPushCompleteCallback() 也在绑定线程上运行。它不能在其回调函数中做很多事情,例如在 setOnNdefPushCompleteCallback() 中不支持 AsyncTask。
  • 是的,没错。 NDEF 交换是异步的,您不能同时在两个方向上发送消息。除此之外,您可能不想在回调本身中做很多事情。只需自己创建一个单独的线程并从回调中向其发布消息,以使其在成功发送 NDEF 消息后执行您想做的任何事情。
  • 我只想简单地将数据回复给发起者。怎么做?
  • 这根本不可能... :( 除非这两个设备中的一个不是 Android 设备并且该设备正在发送数据。那么您可以尝试重置 RF 场之类的技巧,这导致 Android 设备再次发现另一台设备。这将使 Android 设备能够发送接收数据的确认。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
  • 2018-08-28
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-16
  • 1970-01-01
相关资源
最近更新 更多