【问题标题】:Making NFC/Beam more automatic使 NFC/Beam 更加自动化
【发布时间】:2012-11-12 14:56:03
【问题描述】:

我正在向我的应用程序添加 NFC/Beam 功能,我希望它尽可能自动运行。我想摆脱发送方的“Touch To Beam”屏幕和接收方的“新标签扫描”屏幕。基本上,我希望它像三星广告中那样工作!!!我在stackoverflow中读到似乎没有办法摆脱“Touch To Beam”屏幕,但是我希望有人有一些更新的信息或知道如何删除接收器屏幕。谢谢!

【问题讨论】:

    标签: android nfc hce nfc-p2p android-beam


    【解决方案1】:

    发送方

    在两台 Android (4.0+) 设备之间使用 NFC 点对点通信(又名 Android Beam)时,无法避免使用 Beam UI。所以没有“Touch to Beam”是无法传输数据的。

    在 Android Beam(实际上是 Android 2.3.3-2.3.7)之前,这可以通过前台 NDEF 推送(现在 (a) 已弃用并且 (b) 在 Android 4.0+ 上通过 Beam 实现)来实现。在这种情况下,NDEF 消息会在没有“Touch to Beam”窗口的情况下立即传输。

    从 Android 4.4 开始,可以在没有 Beam UI 的情况下通过 NFC 在两台 Android 设备之间进行通信(实际上根本不使用 Android Beam 和点对点模式):如果两台设备都是 4.4+,则一台设备可以使用 Android HCE 模拟非接触式智能卡,并且一台设备可以使用读卡器模式 API(这仅适用于 4.4 中引入的读卡器模式 API,因此两台设备都需要 4.4+)与模拟的智能卡进行通信。

    接收方

    如果你通过 Beam 发送一个 NDEF 消息,你至少可以让接收方做你想做的事。在这种情况下,您需要在应用的 AndroidManifest.xml 中注册一个正确的 NDEF_DISCOVERED 意图过滤器(与发送的 NDEF 消息的第一个 NDEF 记录的记录类型/数据类型匹配)。

    【讨论】:

    • 你尝试过 HCE/reader-mode 的想法吗?该用例没有正式记录。
    • @WillWhite 是的,我试过了。工作得很好,并且 由 Google 记录在 two example apps on GitHub
    • 抱歉,不知道我在想什么。感谢您的链接。
    【解决方案2】:

    您可以通过foregroundDispatch http://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc.html 手动处理光束 这将允许您的应用自动发送。

    至于接收,您可以使用活动来捕获意图并将其转发到服务进行处理。

    【讨论】:

    • 不,foregrounddispatch 仅适用于接收 NFC 事件而不是 Android Beam。
    • NFC 家伙 - 这是否意味着没有办法做我想做的事?
    • 对,所以不要使用漂亮的包围 nfc 事件的光束 API,而是手动执行。
    猜你喜欢
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    相关资源
    最近更新 更多