mcpField
P
phone-link-samsung-control

phone-link-samsung-control

github.com/arthurzakirov生产力1153 次安装2 周前更新
代码仓库

关于 phone-link-samsung-control

用于通过 Windows Phone Link 镜像窗口操作 Arthur 的 Samsung Galaxy S25 FE。它提供经过测试的原生应用操作路径、隐私防护,以及睡前限制设置指引,并要求先核实设备状态。

主要功能

  1. 01操作镜像的 Samsung 手机
  2. 02定位原生 Phone Link 窗口
  3. 03使用最新截图执行操作
  4. 04保护手机中的私人内容
  5. 05指导设置睡前限制

适用场景

  1. 01通过触控手势浏览镜像手机
  2. 02核实可见的睡前设置后再报告
  3. 03设置限制分心活动的睡前安排

MCP 相关

此技能未说明 MCP 连接或服务器。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/arthurzakirov/agentdesk --skill phone-link-samsung-control

安装后在 Claude Code 中输入/phone-link-samsung-control确认已加载。

附带文件agents/openai.yaml

详细介绍

Phone Link Samsung 控制

当任务需要直接操作 Arthur 的 Samsung Galaxy S25 FE(通过 Windows Phone Link 应用镜像显示)时,请使用此技能。

此技能记录了此前测试过的原生 Windows 控制路径。关键区别在于,Phone Link 是原生 Windows 应用,而不是浏览器标签页。不要仅仅因为浏览器工具看不到它,就断定无法控制。

必需的计算机使用设置

控制 Windows 应用之前,请加载捆绑的 computer-use 技能及其必需文档。使用能够导入 @oai/sky 的 JavaScript 执行界面;如果当前尚未加载该工具,请搜索 node_repl 或计算机使用工具,而不要使用仅限浏览器的自动化方式。

每个全新的 JavaScript 会话只需初始化一次运行时:

if (!globalThis.sky) {
  const { sky } = await import("@oai/sky");
  globalThis.sky = sky;
}
nodeRepl.write("sky initialized");

查找 Phone Link 窗口

已观察到 Phone Link 使用以下原生 Windows 应用 ID:

Microsoft.YourPhone_8wekyb3d8bbwe!App

列出应用或窗口,并筛选出该应用 ID 及以下标题:

  • S25 FE von Arthur
  • Phone Link
  • Einstellungen

优先选择标题为 S25 FE von Arthur 的设备窗口,与镜像手机进行触控交互。仅当需要操作主应用外壳时才使用 Phone Link;只有在镜像手机内打开 Android 设置应用时才使用 Einstellungen。

已知可用的选择模式:

globalThis.apps = await sky.list_apps();
const candidates = apps.flatMap(app => app.windows || [])
  .filter(w => w.app === "Microsoft.YourPhone_8wekyb3d8bbwe!App" && w.title === "S25 FE von Arthur");

if (candidates.length !== 1) {
  nodeRepl.write(JSON.stringify(candidates.map(w => ({ id: w.id, app: w.app, title: w.title })), null, 2));
  throw new Error(`Expected exactly one S25 FE Phone Link window; found ${candidates.length}`);
}

globalThis.targetWindow = await sky.get_window({ id: candidates[0].id, app: candidates[0].app });
await sky.activate_window({ window: targetWindow });
globalThis.state = await sky.get_window_state({
  window: targetWindow,
  include_screenshot: true,
  include_text: false
});
globalThis.targetWindow = state.window;

如果 JavaScript 会话丢失状态,请重新初始化 sky,再次查找目标窗口,并在操作前重新观察。

通过屏幕截图操作

操作手机时,请根据最新观察结果使用屏幕截图和坐标。除非确有必要且安全地查看文本,否则请保持 include_text: false。这样可以避免暴露私人消息、电子邮件、通知或应用内容。

每次点击、拖动或滚动之前:

  • 如果当前屏幕截图可能已过时,请重新观察相关的 Phone Link 窗口。
  • 使用最新观察结果中的 screenshotId。
  • 操作后清除或替换过时的缓存状态。
  • 操作后重新观察,以确认画面结果。

已知有效且无害的验证操作:

const observation = globalThis.state;
const screenshotId = observation.screenshots?.[0]?.id;
if (!screenshotId) throw new Error("No screenshotId returned by latest observation");

globalThis.state = null;
await sky.drag({
  window: observation.window,
  screenshotId,
  from_x: 560,
  from_y: 1160,
  to_x: 120,
  to_y: 1160
});

globalThis.state = await sky.get_window_state({
  window: observation.window,
  include_screenshot: true,
  include_text: false
});
globalThis.targetWindow = state.window;

在成功的运行中,此操作在 Android 主屏幕上执行水平拖动,在 S25 FE von Arthur 窗口中产生了可见的 Android 边缘滑动响应。这证明 Phone Link 接受触控手势。

安全边界

将手机控制视为涉及隐私的操作。

  • 不要打开、阅读、总结或泄露电子邮件、消息、通知、浏览历史记录、账户详情或应用内容等私人内容。
  • 不要购买任何商品、将商品加入购物车、输入凭据、批准付款或批准付费方案。
  • 安装第三方应用、授予敏感权限、更改账户设置、选择允许的联系人/来电者或更改闹钟之前,请先停下并询问。
  • 测试控制功能时,优先使用无害的系统导航操作,例如返回、主页、最近使用的应用、设置导航或空白区域手势。
  • 避免可能导致声音意外变大的操作,例如在媒体可能会继续通过手机扬声器播放时断开蓝牙连接。

睡眠设置意图

当请求涉及 Arthur 的睡前手机设置时,请保留以下决定:

  • 每天 22:30 至 05:00 期间启用强制分心防护和应用限制。
  • 22:00 至 05:00 期间将通知静音并拦截普通来电,但不要禁用紧急呼叫。
  • 23:00 至 05:00 期间,Audible、YouPipe、YouTube、播客和有声书不应发出声音。优先使用内置的 Samsung Routine 停止或暂停媒体;如果无法使用,则在此时间段将媒体音量设为 0,并在支持的情况下于 05:00 后恢复。
  • 不要创建早晨闹钟。Arthur 希望自然醒;06:30 只是理想的起床时间。如果 Samsung 睡眠模式启用了起床闹钟,请找出该闹钟,并在关闭前遵守停止操作的边界。
  • 强制限制期间,仅允许可识别的必需应用:Phone、Clock、Calendar、Maps、银行或 2FA、密码管理器、Notes 和 Settings。
  • 在可配置的情况下限制容易分心的应用:YouTube、YouPipe、浏览器、Amazon、Reddit 和其他社交媒体、ChatGPT、Play Store、Galaxy Store,以及可能造成深夜风险的 Audible。

这些是预期设置,并不代表设备当前状态。声称已配置某个时间表、闹钟、媒体操作或限制之前,请先核实界面上显示的状态。如果无法安全检查状态,请准确说明阻碍,不要猜测。

评论

支持 Markdown