【问题标题】:Android Development close range data exchangeAndroid开发近距离数据交换
【发布时间】:2020-08-16 18:20:51
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android bluetooth nfc google-nearby google-nearby-connections


    【解决方案1】:

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

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

    您会得到它来模拟带有自定义 mime 类型数据的 NDEF 消息的卡片,并且如果您的应用程序安装在接收 Android 设备上,并且针对自定义 mime 类型具有正确的 Intent Filter 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 设备上,您也可以将 AAR 记录放在模拟卡 https://developer.android.com/guide/topics/connectivity/nfc/nfc#aar 上,这会将用户发送到应用商店以获取您的应用。

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

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

    【讨论】:

    • 看到一些例子很难理解这一点也很好
    • 不幸的是,这是一件复杂且罕见的事情,我没有遇到任何代码示例来与您分享确切的操作方法,因为您正在解决最近才发生的 Android Beam 被移除问题.
    • 我真的不明白为什么 android 梁被删除了。像 covid 接触者追踪应用程序这样的 ble 也无法做到这一点
    • Google 的常见做法是查看它们是否起飞并为它们赚钱,如果不起飞,它们就会被丢弃,因为运行/支持它们需要花钱。对于 Android Beam,他们实际上表示他们实际上会将支持移交给任何希望继续在自己的设备中提供支持的设备制造商。但谷歌自己不会在基本的 Android 或他们的设备中提供它。此外,我在答案中确实提到了蓝牙/BLE 或 Wifi 会更好,可以直接使用或通过 Google 附近连接使用
    • 我正在研究使用 Google Nearby Connections。但是让我退缩的是,我需要让两个设备都交换数据,同时做广告和发现,同时还要限制在 Connections api 中无法实现的听音距离。是否可以使用蓝牙完成,而无需像他们这样的最终用户无需进入设置即可找到其他设备并选择它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2016-05-12
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多