Android NearBy API 非常慢(发现和连接约 10 秒以上)
Posted
技术标签:
【中文标题】Android NearBy API 非常慢(发现和连接约 10 秒以上)【英文标题】:Android NearBy API terribly slow (~10+ seconds for discovery and connection) 【发布时间】:2020-07-16 10:25:30 【问题描述】:我正在尝试在两部 android 手机之间设置通信通道。
不幸的是,Google 决定阻止开发人员访问蓝牙适配器 MAC 地址,从而有效地禁用了整个 NFC 到蓝牙的切换过程(简单安全配对)。
旁注:为什么?隐私/安全收益微乎其微,尤其是 如果你随机化它!当应用请求 MAC 时,您可以简单地将其随机化,就是这样!
此 SSP 过程过去最多需要大约 1-3 秒,并且产生了出色的用户体验。
目前,我被 NearBy 所困扰,它会产生糟糕的用户体验(谁会等待 10 秒来等待初始连接?)
我们剩下的唯一选择:
以某种方式改进 NearBy API(发现和连接平均约 10 秒!为什么是 Google,为什么?) WiFi 热点 - 将约定的 ID 设置为名称、发现和连接(平均约 8 秒) 蓝牙 - 每次都需要批准弹出窗口,速度稍快一些,但会导致用户体验不佳。 互联网 - 只需使用互联网并回退到本地无线方法(当 4G 互联网连接速度比本地无线 Android NearBy 快得多时,您知道 Google 的实施肯定失败了)。有没有什么秘方可以让 NearBy 进行改进,至少与 Apple AirDrop 一样快(平均约 4 秒)?
我还有其他选择吗?
谢谢!
【问题讨论】:
您是否试图在两个安卓设备之间建立连接只是为了简单的串行通信? 是的,希望使用本地无线(非蜂窝),因为我的许多客户无法访问稳定的蜂窝互联网。 即使是 Google 自己的“文件”应用程序也需要大约 4 秒才能找到另一部手机,一旦被接受,又需要 6 秒才能连接,因此总共大约需要 10 秒。因此,如果谷歌自己不能更快地做到这一点,我认为你也做不到。 Wifi Direct 似乎也没有更快的速度。 【参考方案1】:荒谬的定义:
两部相距 1 米且具有多个直接无线选项(蓝牙/BLE/WiFi)的手机平均需要 10 整秒才能连接(在发送数据之前)。
两部相距 20 公里 的手机通过蜂窝数据 (3G/4G/5G) 进行通信,平均在 1.7 秒后完全连接!即使经过 GSM BTS、代理、缓存、防火墙、BGP 路由和其他过滤器。
Google 必须做一些事情来解决这个问题(在他们禁用了唯一提高速度的方法之后,使用 BT SSP,将 NFC 移交给 BT - 因为他们禁用了 BT MAC 地址公开)。
我现在的解决方案是默认使用 Internet,同时尝试通过 NearBy 进行连接,因为我需要一个备用设备,以便为我的一些没有良好蜂窝信号的客户工作。
【讨论】:
以上是关于Android NearBy API 非常慢(发现和连接约 10 秒以上)的主要内容,如果未能解决你的问题,请参考以下文章
使用Nearby Connections API进行音频流式传输
适用于 Android 的 Google Nearby Publish 在后台