如何使用 Cortana 从 Windows 10 PC 上打开 Xbox One?
Wake-on-LAN 对于 Xbox One 来说相对较新。此功能随 8 月更新一起发布。
幸运的是,您不必为自己编写解决方案的脚本。其他人已经为你完成了工作:
如果您有兴趣为自己找出一些东西,这篇技术网文章是必读的。
我必须承认,我有点失望,我无法找到一种完全集成的方法,可以通过装有 Windows 10 的 PC 或手机与 Xbox One 进行通信。毕竟 PC 和 Windows 手机都有 Xbox 应用程序。
'Teaching' Cortana 识别和执行自定义脚本已在此 Stack Overflow 答案中进行了解释。
没有 Cortana
如果您的控制器已与 Xbox One 配对,请使用控制器上的 Xbox 按钮。
通过使用官方 Windows 10 Microsoft Xbox 应用程序。要完成这项工作,您必须按照以下步骤将 Xbox One 连接到 Windows 10 应用程序。如果流式传输有效,则您的 Xbox One 已连接到您的 Windows 10 Xbox 应用程序。现在关闭您的 Xbox One。您仍应在 Windows 10 Xbox 应用程序中看到您的 Xbox。它现在还应该为您提供一个选项来打开您的 Xbox One,请参见下面的屏幕截图),然后就可以了!:)
注意:我仅在通过 LAN 连接的 Xbox One 上进行了此测试,Xbox One 配置为高能量模式并且使用 Windows 10 Xbox 应用程序版本 38.38.14002.00000。欢迎评论这是否适用于 WiFi 和低能耗设置。
屏幕截图(荷兰语):
使用 Cortana
我认为 Cortana 不支持通过自然地使用您的声音来唤醒您的 xbox,因此您需要一个第 3 方脚本或应用程序。脚本或应用程序应使用网络唤醒协议并以您的 xbox one MAC 地址为目标来唤醒它。这个人有一个关于 Cortana 唤醒他的电脑的视频,它也应该适用于你的 xbox 。
另一个可能需要研究的选项是将 IFTT 与 Cortana 集成和其他一些网络唤醒集成一起使用。这是使用 Google Assistant 唤醒您的 xbox one 的示例。您可以在不编写任何脚本的情况下创建自己的工作小程序。
作为参考,这里有一些我编写的用于唤醒 Xbox One 的C#通用 Windows 平台(UWP) 代码:
public static async Task XboxWake(IPAddress ipAddress, string liveId, int retries = 5)
{
using (var socket = new DatagramSocket())
{
var connectionProfile = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();
await socket.BindServiceNameAsync("", connectionProfile.NetworkAdapter);
using (var stream = await socket.GetOutputStreamAsync(new HostName(ipAddress.ToString()), "5050"))
{
using (var writer = new DataWriter(stream))
{
for (int retry = 0; retry < retries; retry++)
{
byte[] payload = new byte[3 + liveId.Length];
payload[0] = 0x00;
payload[1] = (byte)liveId.Length;
for (int i = 0; i < liveId.Length; i++)
payload[i + 2] = (byte)liveId[i];
payload[payload.Length - 1] = 0x00;
byte[] header = new byte[6];
header[0] = 0xdd;
header[1] = 0x02;
header[2] = 0x00;
header[3] = (byte)payload.Length;
header[4] = 0x00;
header[5] = 0x00;
using (var ms = new MemoryStream(header.Length + payload.Length))
{
ms.Write(header, 0, header.Length);
ms.Write(payload, 0, payload.Length);
writer.WriteBytes(ms.ToArray());
}
await writer.StoreAsync();
await Task.Delay(1000);
}
}
}
}
}
我开发了一个名为 XBoot One 的(付费)应用程序,您可以使用它在 Android 和 Windows 中远程打开您的 Xbox。它尚未与 Cortana 集成,但将在未来版本中集成。
它将很快在 Microsoft Store 上架。