在自研Android应用中实现Chrome的「发送至设备」功能
实现类似Chrome「发送至设备」的跨设备链接分享方案
Chrome原生「发送至设备」功能的限制
Chrome的「发送至设备」是基于Google账号同步的私有功能,没有公开的Intent接口或权限申请通道,非系统/非Google系应用无法直接调用该功能,Google目前也不对第三方开放此API的使用权限。
替代实现方案
1. 通过系统分享Intent间接触发Chrome的发送功能
你可以调用Android系统分享Intent,引导用户选择Chrome应用,此时Chrome会自动展示「发送至设备」的选项供用户选择。这种方式无需额外权限,代码示例如下:
// Kotlin 代码示例 val sendIntent = Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_TEXT, "https://example.com") // 替换为你要发送的链接 type = "text/plain" } val shareChooser = Intent.createChooser(sendIntent, "选择应用") startActivity(shareChooser)
缺点是无法跳过应用选择步骤,需要用户手动选择Chrome。
2. 基于FCM实现自定义跨设备推送(推荐)
如果需要更自主的功能,可以通过Firebase Cloud Messaging(FCM)搭建自己的跨设备同步体系:
- 给自研应用集成FCM服务,让用户登录统一账号(Google账号或自研账号体系)
- 开发PC端配套的Chrome浏览器扩展,扩展登录同一账号后,将PC设备信息上报到你的服务端
- 移动端发送链接时,通过服务端匹配用户绑定的PC设备,调用FCM推送链接到对应设备
- PC端扩展收到推送后,直接调用Chrome的API打开链接
这种方案完全自主可控,不受Chrome限制,还能扩展更多跨设备交互功能,但需要额外开发PC端扩展和账号同步逻辑。
3. 利用Chrome同步API(需浏览器扩展配合)
如果用户已登录Chrome账号,可以通过Chrome Sync API实现链接同步:
- 开发Chrome扩展,监听来自自研应用的链接请求(比如通过WebSocket或后台接口)
- 移动端将链接发送到你的服务端,扩展从服务端拉取链接后,添加到Chrome的书签或阅读列表
- PC端Chrome同步后,用户可通过书签或阅读列表打开链接
不过该方案依赖Chrome扩展,且移动端无法直接操作Chrome的同步数据,需要中间服务端做中转。
内容的提问来源于stack exchange,提问作者Krum
相关产品推荐
相关产品推荐

