教程

在 iPhone 和安卓手机之间互传文件

两边浏览器打开同一个页面,念一段四位数房间号,然后发送。不用装 App,不用注册账号,不用配对,文件也不会留在别人的服务器上。AirDrop 做不到这件事,因为它是苹果的私有协议,安卓根本不支持。

从 iPhone 发到安卓

  1. 在 iPhone 上打开这个页面,切换到「发送」,会出现一个四位房间号,比如 4821。
  2. 在安卓手机上用 Chrome 打开同一个页面,切换到「接收」。
  3. 输入 iPhone 上的房间号,加入房间。
  4. 回到 iPhone 选择文件,或者直接把文件拖到页面上。
  5. 安卓手机会直接从 iPhone 的浏览器接收文件。Chrome 首次会提示允许下载。

反方向发送

  1. 在安卓手机上切换到「发送」,把房间号念给对方。
  2. 在 iPhone 上切换到「接收」,输入这个房间号。
  3. 在安卓上选择文件发送,在 Safari 里接收。

为什么不用 AirDrop、蓝牙或者数据线

AirDrop 听起来是标准答案,但它并不存在:那是苹果的私有协议,安卓虽然可以通过第三方应用打开接收端,发送方还得是 iPhone,而且不是一下就能用好。iPhone 和安卓之间蓝牙配对失败的频率高到很多人最后放弃。数据线确实能用,传大视频时也是正确答案,但你得找到对的转接头,而且手机口可能正在充电。剩下的选择都是在两台设备上装 App。而这个方案只需要浏览器——两台手机本来就都有。

每种方案真正的代价

AirDrop蓝牙数据线本页面
iPhone 传给安卓不行不稳定可以,需要转接头可以
无需安装任何东西是是是是
必须两台设备在同一网络是是否否,跨网也能用
文件会留在第三方机器上否否否否
最适合超大文件是否是是,走数据线更快

什么时候这个方案不合适

  • 完全没网的时候,这个方案都不行。唯一不需要网络的是数据线。
  • 传几 GB 的视频,数据线更快。直连速度取决于两端上传速度中较慢的那个;真的需要走中继时,中继那条共享带宽就是瓶颈,而且每转发一个 GB 都是我们自己付费的流量。
  • 有些公司或学校网络会封禁 WebRTC。如果两台设备一直连不上,多半就是这个原因。
  • 房间号默认只有四个字符,理论上可以被猜到,猜到的人可以加入传输。两个人在同一个房间里没问题;真正机密的文件,点发送页的切换按钮改用 36 位房间号就行。

FAQ

安卓有 AirDrop 的替代方案吗?
安卓没有 AirDrop,因为 AirDrop 是苹果的协议。这个页面在两台设备的任何浏览器里用法完全一致,正因为这样它不需要 AirDrop。
没有网络能把文件从 iPhone 传到安卓吗?
只有两台设备在同一个局域网内才行。PrivyDrop 需要一个网络来把两个浏览器互相引荐,即使文件本身完全不走互联网。要真正的离线传输,请用数据线。
两台手机都要装 App 吗?
不需要。iPhone 上的 Safari 加安卓上的 Chrome 就是全部步骤。没有账号,没有配对码,结束后也不会留下任何东西。
文件会被上传到哪里吗?
不会。后端只有创建房间、查询房间是否存在和匿名计数这几类接口,没有任何接收文件的接口,也查不到房间里有哪些人。完整列表就在 MIT 协议开源仓库的 backend/src/routes/api.ts 里。
能传 4K 视频吗?
能传,但这么大的文件用数据线更快,尤其是跨网络的时候。这个方案更适合文档、照片,以及任何你不愿意把副本交给服务器的东西。

相关页面

两台手机都打开这个页面