gpt4 book ai didi

ios - 可以使用私有(private) API 在我的应用程序中以编程方式调用 Siri 吗?

转载 作者:IT王子 更新时间:2023-10-29 08:20:05 33 4
gpt4 key购买 nike

我不想让用户按住主页按钮,而是想在我的应用程序中以编程方式启动 Siri。由于没有可用的公共(public) API 来完成此操作,我想知道是否有人能够通过私有(private) API 以编程方式启动 Siri,如果可以,您使用了哪个私有(private) API?

我对 Siri 的任何返回值不感兴趣。我只想启动它。

最佳答案

答案在一定程度上取决于这是否适用于不会进入 App Store 的应用程序(企业应用程序或个人/爱好应用程序),或者它是否会在越狱 电话。

如果你可以依靠越狱手机和像 MobileSubstrate 这样的越狱实用程序,那么我相信你可以实现一种打开 Siri 的方法,就像 Ryan Petrich's libActivator does 一样。 , 因为我 show in this other answer .

但是,如果您正在为普通的、被关押 手机构建,我仍然认为您可以通过模拟用户打开 Siri 的方式来“破解”它(使用私有(private) API)。首先,按下主屏幕按钮,按住它一会儿,然后松开。

此代码适用于我(iOS 6.1):

#import "GSEvent.h"

- (void)launchSiri {
[self simulateTouchEvent: kGSEventMenuButtonDown];

double delayInSeconds = 1.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self simulateTouchEvent: kGSEventMenuButtonUp];
});
}

- (void)simulateTouchEvent: (GSEventType)type
{
struct GSEventRecord record;
memset(&record, 0, sizeof(record));
record.type = type;
record.timestamp = GSCurrentEventTimestamp();
GSSendSystemEvent(&record);
}

这依赖于 GSEvent.h header ,它不是公共(public) header 集的一部分。我相信我得到了我的here, as well as GSWindow.h that it pulls in .显然,您随后需要下载这两个 header 并将它们添加到您的项目中。

此代码位于GraphicsServices 私有(private)框架中,因此您还需要将该框架添加到您的项目中。这样做就像添加一个普通的框架一样,但是你需要浏览到像

这样的地方
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework

找到它(根据您的 Xcode 安装目录和 SDK 调整路径)。

免责声明:我确实在越狱手机上对此进行了测试,但它绝对是在普通应用程序中,安装在 /var/mobile/Applications/ 沙箱区域中,并且我 99% 确定我没有做任何依赖越狱的事情。

关于ios - 可以使用私有(private) API 在我的应用程序中以编程方式调用 Siri 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18649602/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com