问题描述
所以我一直在研究近距离数据交换。尝试在近距离设备之间交换一些字符串和变量。
我一直在寻找Google附近的人脉关系 但这似乎并不是最佳选择,因为我既需要两个设备来寻找设备,又需要在其他设备上做广告。
并且要限制在两个电话之间的距离更近,例如两个电话接触时。
您的人们将如何做这样的事情?
解决方法
不幸的是,Android Beam已在Android 10中被Google附近取代,因为它不可靠,因为蓝牙和Wifi Direct更好。
如果您确实想使用NFC(并非每部手机都具备),那么一台Android设备可以使用主机卡仿真(HCE)并仿真真实的NFC卡https://developer.android.com/guide/topics/connectivity/nfc/hce。
如果模拟带有NDEF消息且带有自定义mime类型数据的卡,并且您的应用程序安装在接收Android设备上且具有针对自定义mime类型的正确的Intent过滤器https://developer.android.com/guide/topics/connectivity/nfc/nfc#filter-intents,您将得到它的仿真结果,您的应用将被启动并传递自定义数据,或者如果您的应用已在运行并且enableForegroundDispatch
https://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc#foreground-dispatch将会传递数据。
如果您的应用程序未安装在接收方的Android设备上,您还可以在模拟卡https://developer.android.com/guide/topics/connectivity/nfc/nfc#aar上放置AAR记录,并将其发送到应用商店以获取您的应用。
编程HCE并非最简单,您需要模拟NDEF AID(您基本上是在模拟规格为http://apps4android.org/nfc-specifications/NFCForum-TS-Type-4-Tag_2.0.pdf的4型标签)
获得真实的NFC标签最简单,并在其上处理NDEF消息,以确保您可以在开始编程之前就可以使其执行所需的操作(真实的卡将模拟执行HCE的手机) HCE部分。这是因为有很多应用程序可以编写您需要在设备之间发送到真实卡的NDEF消息。