gpt4 book ai didi

iphone - 获取外部 [UIApplication sharedApplication]?

转载 作者:行者123 更新时间:2023-11-29 11:15:44 27 4
gpt4 key购买 nike

我目前正在为 iPad 应用程序开发“设备内”(而非模拟器)监控系统。系统应该能够执行以下操作:

-用户输入模拟:模拟用户输入:点击、拖动、键盘。

-信息记忆:输入后得到文本值和结果。

此信息稍后将报告给事件管理服务器。我已经通过使用 KIF 软件中的一些代码在单个应用程序中解决了这两点 https://github.com/square/KIF和一些自己开发的代码。我使用 UIView 对象的 accessibleName 属性获取它们的指针并将人工事件发送到 [[UIApplication sharedApplication] sendEvent:] 方法。

事情是这样的:我需要将这些事件从我所在的应用#1 发送到应用#2。 (为了保持监控独立,也不能将所有代码嵌入到 app#2 中)我使用 [[UIApplication sharedApplication] openURL:] 方法打开 app#2。 https://developer.apple.com/library/IOs/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW18

问题是,我无法将事件从 app#1 发送到 app#2,因为我似乎无法在 app#1 代码中获取指向 app#2 的 [UIApplication sharedApplication] 对象的指针。

进程之间的共享内存通信会很好,但根据我找到的信息,URL 消息传递方案似乎是 iOS 中应用程序(或进程)之间唯一的通信。 iOS 中也不存在 NSConnection 类。我也阅读了一些关于 Mach 端口和 POSIX 文件描述符的内容,但它们看起来相当复杂,我不知道它们是否能提供帮助。

我什至尝试将 app#2 [UIApplication sharedApplication] 实例的指针值作为字符串参数发送到 URL 消息中,然后将字符串转换回 app#1 中的指针,但得到了 EXC_BAD_ACCESS。我想指针地址在两个进程中并不意味着相同。也许每个过程都有自己的“偏移量”?任何帮助将不胜感激。

最佳答案

首先,我要澄清的是,如果没有私有(private) API,你想做的事情是不可能的。每个应用程序都被沙盒化,您无法(直接)访问其他应用程序。我觉得你的问题很大。

在 iOS 中运行的每个应用程序就像一个小型的、独立的生态系统,当用户按下“主页”按钮时它就会结束(除非您声明了一些后台服务,例如 VOIP、本地化或音频播放器)。应用程序关闭后,您仍然可以运行的唯一一件事是一个不应超过 10 分钟的过程。这是为了防止过度使用后台任务,即使在此处,其他应用也无法访问该应用。

我认为唯一的方法是搜索私有(private) API,希望其他人已经找到在 2 个应用程序之间(直接)创建数据流的方法。

关于iphone - 获取外部 [UIApplication sharedApplication]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9516506/

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