UniClipboard
移动 App

Android 剪贴板访问

Android 上的后台剪贴板读写与所需权限。

在 GitHub 上编辑

本页仅针对 Android。 iOS 上的剪贴板访问走的是键盘扩展、分享扩展和「从其他 App 粘贴」授权,那些内容在别处讲,不适用于 Android。

从 Android 10 起,系统默认不让后台应用读取剪贴板:App 不在前台时,既读不到你在别处复制的内容、也没法把远端推来的内容写进系统剪贴板。要让「复制即同步」「远端自动写入本机」在后台也生效,UniClipboard 必须借助特殊手段绕过这个限制。App 内 设置 → 后台运行 → 后台读取方式 提供三种,任选其一:

  • 定时轮询(默认)—— 借悬浮窗读写,定时检查剪贴板有没有变化。开箱即用,不用电脑。
  • ADB 事件 —— 同样借悬浮窗读写,但只在系统真的发生复制时才触发。干扰更少、更省电,首次需要用电脑授一次权。
  • Shizuku —— 通过 Shizuku 特权服务读写,不用悬浮窗、事件驱动。需要额外安装并保持 Shizuku 运行。

理解这三种方式,关键是分清**「靠什么读写」「靠什么感知剪贴板变了」**这两件事:

  • 前两种(定时轮询、ADB 事件)底层是同一套——都靠一个短暂出现的悬浮窗抢到窗口焦点来真正读写系统剪贴板;区别只在感知复制的方式:一个靠定时轮询,一个靠监听系统复制事件(需要 READ_LOGS)。
  • Shizuku 完全不同——走特权服务读写,不需要悬浮窗,也不会临时抢焦点。

三种方式怎么选

维度定时轮询(默认)ADB 事件Shizuku
底层读写悬浮窗抢焦点悬浮窗抢焦点Shizuku 特权服务
感知复制定时轮询监听系统复制事件事件驱动
需要电脑是(授 READ_LOGS,仅一次)无 root 启动 Shizuku 时需要
关键权限悬浮窗悬浮窗 + READ_LOGSShizuku 授权
会短暂弹悬浮窗不会
适合想开箱即用的大多数人能连电脑、在意省电和输入体验熟悉 Shizuku 的进阶用户

三种方式在 App 内可随时切换:设置 → 后台运行 → 后台读取方式,左右滑动比较后选择。下面分别说明。

定时轮询和 ADB 事件都靠悬浮窗读写,所以后台读或写的那一刻,悬浮窗会短暂出现在屏幕上,完成后约 10 秒空闲就自动隐藏——这是正常现象,不是弹窗广告。Shizuku 方式不用悬浮窗,不会有这个现象。

三种读取方式

定时轮询不依赖任何外部工具,装好 App 就能用。它借一个短暂出现的悬浮窗完成后台读写,并定时检查系统剪贴板有没有变化。

需要的权限:

  • 悬浮窗权限(SYSTEM_ALERT_WINDOW) —— 后台读、写剪贴板都要用它。可以在 App 内引导下直接跳到系统设置里打开。

不需要电脑、不需要 adb、不需要装任何东西。代价是:因为是周期性轮询,它会定时抢一下焦点,可能短暂影响键盘、游戏或全屏应用;实时性也不如事件驱动的另外两种——你复制完,最长要等一个轮询间隔才会被同步。轮询间隔可在 设置 → 同步 → 本地轮询间隔 里调。

如果你想「装好就能用、别再碰电脑」,用这个就对了。

ADB 事件方式读写用的还是同一个悬浮窗,但把「剪贴板变了」的侦测换成了事件驱动:只在系统真的出现复制事件时才去读一次,平时不轮询。因此更省电、对前台输入的干扰也更小,代价是需要一个应用内无法申请的权限——READ_LOGS

需要的权限:

  • 悬浮窗权限(SYSTEM_ALERT_WINDOW) —— 读写剪贴板用,和定时轮询一样。
  • READ_LOGS 权限 —— 用来监听系统的复制事件。这个权限应用内无法申请,必须用电脑执行一条 adb 命令来授予,且授予后要重启 App 才生效。UniClipboard 只用它检测「发生了复制」这一事件,不会读取其他日志内容。

授予步骤:先按下方 准备:USB 调试与 adb 配好 adb,然后执行:

adb shell pm grant <应用包> android.permission.READ_LOGS

在 App 里把读取方式选成「ADB 事件」后,设置页会引导你完成这步,并把这条已填好实际包名的完整命令复制到剪贴板——你只要粘到电脑终端回车即可。授予后重启 App 才生效。

选了「ADB 事件」但还没授予 READ_LOGS 时,后台的「复制即同步」不会触发(设置页会显示「还需完成电脑端授权」并给出步骤),它不会自动退回定时轮询。不想跟电脑打交道的话,直接用「定时轮询」即可。

Shizuku 是一个第三方开源工具,把系统级权限安全地授予普通应用。配置好之后,UniClipboard 通过它的特权服务直接读写剪贴板,不再需要悬浮窗、不抢焦点、事件驱动,后台体验最稳;在 MIUI(小米 / 澎湃系统)上还能顺带关闭「智能剪贴板」限制——那套限制会干扰后台剪贴板读写。

安装 Shizuku App

从任一渠道安装:

启动 Shizuku 服务

Shizuku 每次开机后都要启动一次服务,选一种方式:

  • 无 root(大多数人用这个) —— 用电脑 adb 启动。先按下方 准备:USB 调试与 adb 配好 adb,再在 Shizuku App 里按提示执行它给出的启动命令(命令以 App 内实际显示为准)。Android 11+ 也可以用 Shizuku 内置的 无线调试 一键配对,全程不用电脑。
  • 已 root —— 直接在 Shizuku App 里点「启动」,无需电脑。

无 root 方式下,手机每次重启都要重新启动一次 Shizuku 服务(Shizuku 的固有限制,不是 UniClipboard 的问题)。追求免打理的话,考虑用默认的定时轮询方式。

授权并切到 Shizuku

  • 在 Shizuku 里对 UniClipboard 授权(首次会弹授权请求)。
  • 回到 UniClipboard,在 设置 → 后台运行 → 后台读取方式 切到 Shizuku。

准备:USB 调试与 adb

给「ADB 事件」方式授 READ_LOGS、或用无 root 手机启动 Shizuku,都需要先在电脑上通过 adb 连上手机。只需配置一次。如果你只用「定时轮询」,可以跳过这一节。

在电脑上安装 adb

adb 是 Google 官方 Android 平台工具(Platform Tools) 的一部分。到 developer.android.com/tools/releases/platform-tools 下载对应系统的压缩包,解压到任意目录。

  • macOS 也可以用 Homebrew:brew install --cask android-platform-tools
  • Windows / Linux 解压后,在该目录打开终端(或把目录加进 PATH),即可使用 adb 命令。

验证:终端执行 adb version,能打印版本号即安装成功。

在手机上打开「开发者选项」

设置 → 关于手机,连续点 版本号(部分系统是「MIUI 版本」「内部版本号」等)约 7 次,直到提示「你已进入开发者模式」。

打开「USB 调试」

设置 → 系统 → 开发者选项(不同厂商系统入口位置略有差异),打开 USB 调试 开关。

连线并授权电脑

用数据线把手机连到电脑(连接方式选「传输文件 / MTP」更稳)。手机会弹出 「允许 USB 调试?」 对话框,勾选「一律允许使用这台计算机」并确定。

在电脑终端执行 adb devices,列表里出现你的设备且状态为 device(不是 unauthorized),即连接成功。

不想一直插着线?Android 11+ 支持 无线调试:开发者选项里打开「无线调试」,用同一 Wi‑Fi 下的配对码把电脑与手机配对后,即可拔线通过 Wi‑Fi 执行 adb 命令。

连好之后:授 READ_LOGS 就执行上面「ADB 事件」标签页里那条 adb shell pm grant …(App 已把填好包名的完整命令复制到剪贴板);启动 Shizuku 就执行 Shizuku App 内显示的启动命令。

在哪里设置

后台相关的开关都在 设置 → 后台运行

顶部的总开关 「后台自动同步」 打开时,会依次引导你授予后台正常工作所需的几项系统权限:

  1. 忽略电池优化(否则系统会在后台把 App 挂起);
  2. 通知权限(用于常驻通知);
  3. 当前后台读取方式所需的授权(默认「定时轮询」即悬浮窗权限;选了别的方式则引导对应授权)。

跟着引导一路允许即可。下方还有一组高级项,可以按需单独调整:

  • 常驻通知 —— 保持一条通知常驻,降低被系统杀后台的概率。
  • 忽略电池优化 —— 单独重新触发这项授权。
  • 后台下载远程 —— 后台时把桌面推来的新内容拉下来。
  • 后台上传本机 —— 后台时把本机复制的内容推给桌面。
  • 后台读取方式 —— 在 定时轮询ADB 事件Shizuku 三者之间切换(点进去可左右滑动比较)。

UniClipboard 不使用无障碍(Accessibility)服务,无需在系统里开启任何无障碍权限。

后台同步能不能长期稳定运行,很大程度上取决于你手机的厂商系统。MIUI / 澎湃、EMUI / HarmonyOS、ColorOS、Funtouch 等国产系统普遍有比原生 Android 更激进的后台管理,即使授予了上述权限,也可能在锁屏或一段时间不用后把 App 挂起、断开同步。

建议尽量做到:打开常驻通知、把 UniClipboard 加进系统的电池「无限制 / 始终允许后台」白名单、并在最近任务列表里给它「加锁」防止被一键清理。MIUI 用户还可以用 Shizuku 方式关闭「智能剪贴板」限制。这些是系统层面的行为,App 本身无法完全代劳。

连不上或不同步?

  • 后台上传不生效 —— 确认所选的后台读取方式已就绪。用「ADB 事件」时,后台侦测复制还需要 READ_LOGS(没授权就去完成电脑端授权,或干脆改用「定时轮询」);用 Shizuku 时确认服务已启动、已授权。
  • 授予了 READ_LOGS 还是没效果 —— 记得重启 App,adb 授权后不重启不生效。
  • 过一会儿就不同步了 —— 多半是被厂商系统杀了后台,见上方 Callout 的建议。
  • 同步是否需要联网到桌面 —— 是。后台访问只解决「能不能读写本机剪贴板」,能不能连上桌面是另一回事,见 连接桌面

更完整的故障排查见 故障排查 一页。想了解桌面侧如何开启手机同步、如何拿到配对凭据,见 移动端同步配对与同步

本页目录