Apple Watch 照片表盘随机照片只循环少量照片的解决方案

最近,我在设置 Apple Watch 的 照片表盘时遇到了一个问题:我有一个包含上千张照片的相簿,但表盘显示的“随机照片”却始终只在十几张之间循环,顺序固定,感觉完全不随机。作为一个喜欢每天换新表盘的用户,这真的让人很抓狂。本文将总结我的发现和解决方法,希望对遇到类似问题的朋友有所帮助。


前因:为什么 Apple Watch 表盘随机照片只循环少量

Apple Watch 的“随机照片”表盘并不是完全从相簿里实时抽取照片,而是有以下机制:

  1. 有限缓存机制
    Apple Watch 并不会实时从相簿抽取照片,而是会缓存一小组照片(通常 18~24 张)用于表盘循环。
  2. 顺序固定
    这组缓存生成后顺序固定,看似随机,但其实是循环播放。
  3. 缓存不会自动刷新
    除非你手动更换相簿,否则手表不会去抽新的照片。

总结来说,Apple Watch 的“随机”并不是真正遍历相簿,而是受限于缓存机制,即便相簿里有上千张照片,表盘也只会反复显示那十几张。


问题分析

我希望实现的效果是:

  • 每次随机从上千张照片中挑出 20 张
  • Apple Watch 表盘自动更新,始终显示最新的随机照片
  • 无需手动确认或打开快捷指令
  • 利用我的短链接网站简单部署一个只显示1/0的网页,将通过这两个状态切换我的相册更新

挑战在于:

  1. iOS 默认快捷指令删除照片时会弹出确认框
  2. 系统原生自动化不支持每 2 小时运行一次
  3. Apple Watch 表盘不会自动刷新缓存
  4. 快捷方式里使用post方式和get方式获取短链接网站的信息

解决方案概述

经过测试,我采用了以下方案,既保证自动化,又避免破坏原始照片库。


1. 使用专用相簿绑定表盘

  • 新建相簿:WatchPhotosWatechPhotos_
  • Apple Watch 表盘绑定这两个相簿
  • 原始照片相簿保持完整:Origin

这样,表盘只读取 WatchPhotosWatechPhotos_,操作过程不会影响原始照片。


2. 通过快捷指令自动更新相簿(固定随机 20 张)

流程概述

  1. 获取随机照片
    • Origin 相簿获取所有照片 → 排序方式 随机 → 限制获取 20 项
  2. 清空表盘相簿
    • 获取 WatchPhotosWatchPhotos_ 相簿里的全部照片
    • 移除相簿里所有照片(并非删除而是移除,不用申请权限)
  3. 添加新照片
    • 保存之前随机选出的 20 张照片到 WatchPhotos`或`WatchPhotos_

3. 使用短链接 + API 控制表盘相簿切换

为了实现更灵活的控制,比如在不同时间切换不同相簿,我引入了一个小技巧:

  1. 短链接文本
    • URL:https://shortlink.3865472.xyz/watch
    • 内容:01,用于决定当前使用哪个表盘相簿
  2. 快捷指令读取短链接
    • 获取短链接文本 → 修剪空格
    • 使用“从输入中获取词典”解析 JSON
    • 获取 orgi_url 值判断是 0(使用 WatchPhotos)还是 1(使用 WatchPhotos_
  3. 根据判断更新表盘相簿
    • 移除原有照片 → 保存新照片 → 更新绑定表盘
  4. 失败自动重试
    • 如果 API 返回异常,快捷指令可自动重复执行,直到获取到有效值

这样,即使 Apple Watch 表盘缓存不刷新,也可以通过定时或 API 触发来保证每隔 2 小时显示新的随机照片。

f30d567f3b664f19df1090b70cc01f75


4. 自动化设置(每 2 小时更新)

由于系统原生时间触发不支持每 2 小时间隔,我使用了 固定时间点自动化方案:

  • 设置每天 0:00、2:00、4:00……22:00,总共 12 个时间点
  • 每个时间点运行同一个快捷指令
  • 删除确认已关闭,整个过程无需人工干预

示意图


5. 运行效果

  • Apple Watch 表盘每天随机显示最新 20 张照片
  • 原始相簿保持完整
  • 照片更新完全自动化,每次抬手都能看到新鲜感
  • 技术方案稳定可靠,不受后台限制干扰

总结

以前一直没想到 Apple Watch 的随机照片机制如此“坑”,在尝试各种方法都解决不了后,最终选择了这个方案:

  1. 使用专用相簿绑定表盘
  2. 快捷指令自动清空 + 添加最新随机 20 张照片
  3. 可选:短链接 + API 控制不同相簿切换
  4. 自动化定时触发,每 2 小时更新

结果非常满意,既保证了随机性,又完全自动化,非常适合像我这样喜欢每天换表盘的用户。

以下是本人自建的快捷指令,可直接参考或修改使用。