首页 > 解决方案 > Android开发近距离数据交换

问题描述

所以我一直在研究近距离数据交换。试图在近距离设备之间交换一些字符串和变量。

我一直在研究 Google Nearby Connections 但这似乎并不理想,因为我需要两个设备来寻找设备并将自己广告给其他设备。

并且它被限制在手机之间更近的距离,比如两部手机接触时。

你们这些人会怎么做这样的事情?

标签: androidbluetoothnfcgoogle-nearbygoogle-nearby-connections

解决方案


不幸的是,Android Beam 在 Android 10 中已被弃用,被附近的 google 取代,因为它不可靠,因为蓝牙和 Wifi Direct 更好。

如果您真的想使用 NFC(并非每部手机都有),那么一台 Android 设备可以使用主机卡仿真 (HCE) 并模拟真正的 NFC 卡https://developer.android.com/guide/topics/connectivity/nfc/ hce _

你会得到它来模拟一张带有自定义 mime 类型数据的 NDEF 消息的卡片,并且如果你的应用程序安装在具有正确意图过滤器的接收 Android 设备上https://developer.android.com/guide/topics/自定义 mime 类型的连接/nfc/nfc#filter-intents,您的应用程序将被启动并传递自定义数据,或者如果您的应用程序已经在运行并且它enableForegroundDispatch https://developer.android.com/guide/topics/connectivity/ nfc/advanced-nfc#foreground-dispatch它只会将数据传递给它。

如果您的应用程序未安装在接收 Android 设备上,您还可以将 AAR 记录放在模拟卡https://developer.android.com/guide/topics/connectivity/nfc/nfc#aar上,这会将用户发送到应用商店获取您的应用。

对 HCE 进行编程并不是最容易做到的,您需要模拟 NDEF AID(您基本上是在模拟类型 4 标签,其规范位于http://apps4android.org/nfc-specifications/NFCForum-TS-Type-4-标签_2.0.pdf )

可能最容易获得真正的 NFC 标签,并在其上使用 NDEF 消息,以确保您可以让它做您想做的事情(真正的卡将模拟手机执行 HCE),然后再开始对 HCE 部分进行编程. 这是因为有许多应用程序可以将您需要在设备之间发送的 NDEF 消息写入真实卡。


推荐阅读