我正在尝试确定(潜在的)项目中所需的某些特性的可行性。我还没有找到一个方法,只是一个可以做的。我为任何含糊不清和无知道歉:前者是因为保密协议使苹果的保密协议看起来像GPL,后者是因为我没有iPhone或Mac的经验。
我确实非常了解Objective-C和Interface Builder(回到NextStep)以及一些PDA开发经验,所以我可能会理解答案,即使我的问题很幼稚。我做了一些浏览,所以我知道一些流行语。
我不能详细说明实际的项目,但我想出了一个蹩脚的类比。
-
同一个房间中的大量用户被要求完成应用程序中的任务(比如拼图)。
-
他们在监督下,但监察员不能密切监视他们。
-
在完成申请之前,他们是不允许离开的。
-
他们不能在任务期间发送/接收电话或消息。
-
监视器在任务执行期间接收到各个步骤的通知。
-
当任务完成或应用程序退出时,会通知监视器。
-
应用程序发送心跳,因此监视器也知道信号是否丢失。
-
越狱不是一种选择。
-
该应用程序也应该在iPod touch上运行。
所以我需要做的事情对我来说是危险的
-
我可以关闭(或要求用户关闭)电话和短信,但仍然可以向我的服务器发送HTTP吗?
-
我能阻止一个应用程序被关闭吗(即使报警应用程序触发或电话铃响)。
-
失败预防,我能至少检测到这些事件并通知我的服务器吗?
-
通知失败,我可以记录事件供监视器稍后检查吗?
用户将意识到(实际上欢迎)这些限制。这是一个信任问题-用户不得寻求帮助或使用帮助应用程序来解决难题,并希望监视器(和其他竞争者)能够
知道
他没有。用户可以在开始时单击“OK,I understand and approve”(确定,我理解并批准)屏幕,但不适用于与服务器的每次通信。
该应用程序将只与一个中央服务器(由我的公司运行)通信-监视器将无法购买服务器软件,服务器的URL将不可用户(或监视器)修改。
嘿!这看起来像是参加考试的应用程序。不是我在做什么,但那也很酷!
编辑——
我更改了标题,并在问题中添加了更多的部分,部分基于MMC的答案。应用程序可能以脱机模式运行,必须执行以下操作:
因此,使用测试类比,用户离线体验应该是这样的。
-
启动应用程序
-
应用程序下载测试问题、注册开始时间等。
-
关闭手机(如果应用程序无法自行完成)
-
禁用任何可能中断我的应用程序的应用程序(应用程序可以这样做吗?)
-
恢复并接受测试
-
指示测试完成(或完成最后一个问题)。
-
打开手机(如果应用程序无法启动)并重新启动应用程序(如果需要)。
-
应用程序上传测试结果和任何中断的日志。
所以问题变成
-
我确定我至少能记录下我不能阻止的任何中断吗
-
我能知道中断的原因吗(电话接听、警报启动、用户启动)?
-
是否可以阻止用户修改日志
-
我能知道我启动时还有哪些应用程序在运行吗?(防止守护进程偶尔显示提示或其他内容。
我仍然想运行与实时上传,所以其他一些想法出现在我的脑海中。
-
如果我能可靠地检测和记录手机或其他应用程序的使用情况,那可能和阻止它一样好。
-
用户是否可以阻止电话响铃,即使它是打开的(例如,呼叫转发+振铃器关闭)
-
我的应用程序能知道铃声是否关了吗
-
短信同样的问题
-
如果我不能阻止它,用户可以忽略(无声)呼叫或消息而不离开我的应用程序。我的应用程序知道吗?