AppCast是一种用于不同设备间互相拉起和通信的协议,目前主要应用于移动端与电视端之间的投屏和通信。它将用户意图(Intent)封装为结构化 URI,电视端解析后执行相应应用操作,如启动应用、跳转页面、播放内容等。这个协议是之前《让大小屏互动更有趣的超级投屏协议(DLNA扩展)》的扩展升级。
协议格式
appcast://<appid>/<action>?<query_params>
appid支持方式
1. 使用应用包名
示例:
appcast://com.example.video/play?vid=abc123
电视端直接使用该包名构建 Intent 并启动对应应用:
Intent().setComponent(ComponentName("com.example.video", "com.example.video.MainActivity"))
2. 使用 appid(用于跨品牌、平台统一识别)
很多情况下,相同应用在不同渠道下包名并不一致,所以这里采用appid做为映射表来寻找真实跳转包名。
示例:
appcast://videoApp/play?vid=abc123
电视端(或者服务端)会维护一个映射表:
{ "videoApp": { "packageName": "com.tencent.qqlive.tv", "launchActivity": "com.tencent.qqlive.tv.MainActivity" }}
解析 appid 后构建对应包名和 Activity 的 Intent 启动应用。
示例用法
电视端解析流程
解析 URI 字符串
识别 appid 是包名还是 appid
如为 appid,则查找注册映射表,获取实际包名与启动 Activity
构建并启动 Intent,同时附带参数
进入目标应用后根据 action + query 执行页面跳转或播放逻辑
典型场景
B站手机app点击“投屏”按钮,B站电视端被拉起,播放B站手机端“投屏”过来的视频。
协议历史:
让大小屏互动更有趣的超级投屏协议(DLNA扩展)
优化投屏服务的建议标准:DLNA代理
责任编辑:凌美
24小时热文
流 • 视界
专栏文章更多
- [常话短说] 【解局】守住广电的基本盘! 2026-10-20
- [常话短说] 【重磅】严查!内外勾结办卡 2026-10-19
- [常话短说] 【解局】全省免费看电视,又迈进一步! 2026-10-16
- [探显家] Netflix为什么应该收购Jackbox,却又可能不会这么做? 2026-10-15
- [常话短说] 【重磅】广电5G有个突破性! 2026-10-14



