android - Android开发近距离数据交换
问题描述
所以我一直在研究近距离数据交换。试图在近距离设备之间交换一些字符串和变量。
我一直在研究 Google 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 消息写入真实卡。
推荐阅读
- php - PHP套接字多个客户端读/写
- python - 汇总列表中的信息
- c# - 通用映射器调用另一个映射器
- angular - Angular Firebase 身份验证
- sql - 如何获取单独的行,如果被分组将有特定的总和
- flutter - 如何验证有 5 个 textfieldfom 小部件的表单的 textfieldfom 小部件,一个一个地颤动
- powershell - Powershell在退出do-until循环后提前终止
- jquery - 未捕获的类型错误:无法读取未定义的属性 XXX
- sql - SQL:如何以 30 秒为间隔进行分组并标记该分组中的最大时间?
- java - Spring kafka:无法将消息发送到通道有效负载不能为空