2012-10-19 42 views
14

我希望在从OTA安装我的应用程序后,设备的主页按钮将无法工作,以至于用户无法从应用程序中退出。我的挖掘导致我以下结果无需重新启动设备即可禁用主页按钮

A)我有一种方法来禁用"mobileconfig"配置文件的主页按钮,但它需要重新启动设备和用户必须在启动后立即打开我的应用程序,我想这样做而无需重新启动像非监禁设备上的私人框架一样。我想知道对于非越狱装置可能吗?

C)如果无法使用Private Frameworks禁用主页按钮,那么是否有任何方法在引导设备后立即打开应用程序?,因为某些越狱应用程序/进程在启动时加载。

[注:我不希望我的应用程序提交到iTunes。]

+0

这是谁的应用程序,旨在?无论应用商店如何,禁用主页按钮都会让用户认为他们的设备行为异常/损坏。 – occulus

+2

我们需要它进行教育评估。我们使用企业分发证书发布此应用程序,我们的mobileconfig配置文件将在检查结束后自动卸载。 – GauravSTomar

+1

我们可以与苹果配置做到这一点:监督设备,但它会造成伤害用户的数据。 – GauravSTomar

回答

19

在iOS6的,有一个名为“引导访问”功能,这将允许设备所有者锁定的用户(如幼儿和学校的孩子们)到一个应用程序。

这解释了the Guided Access for iOS 6 apps

+2

感谢您的建议,但我想从我的应用程序做同样的事情。引导访问不会有一个API或框架尚未从代码中使用它。 – GauravSTomar

+1

+1有价值的信息 –

+0

什么是+25意思是 – Rajneesh071

1

这个问题的官方答案是“你不能禁用ios设备中的home按钮,它是os级别的体系结构,并且你没有授权它。”

您需要挖掘操作系统流程以进行任何可能很安静的更改。

好吧,如果你改变你的视线,虽然它比在ios 6中有一个开放和简单的解决方案被称为引导访问。

+3

我们可以通过“ mobileconfig“配置文件,但需要在引导后立即重新启动设备并打开指定的应用程序。这不是一个适当的解决方案,我们希望在不重新启动的情况下做到这一点,我认为可以使用私有框架(Springboard等)。 – GauravSTomar

1

如果你能够越狱你的设备创建一个LaunchDaemon或使用现有的。 LaunchDaemon是一个plist格式的文件,需要重新启动和启动设备。您还需要一个命名为K3A

下载open创建open文件从here

您将需要移动open到/ usr/bin中/或者你可以将其放在您的应用程序并不重要,但设置权限, 0755 and root:wheel

现在到LaunchDaemons,它们都存储在这里

/System/Library/LaunchDaemons 

下面是一个例子。 比方说,你命名LaunchDaemon

com.gauravstomar.test.plist 

凡说com.bundle.identifier把你的应用程序标识符,你可能还会发现它在你的Info.plist您的应用程序目录内的地方说CFBundleIdentifier

现在里面的plist中插入以下信息

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>Label</key> 
    <string>com.gauravstomar.test</string> 
    <key>ProgramArguments</key> 
     <array> 
      <string>open</string> 
      <string>com.bundle.identifier</string> 
     </array> 
    <key>RunAtLoad</key> 
    <true/> 
     <key>StartInterval</key> 
     <integer>1</integer> 
</dict> 
</plist> 

标签必须是相同的名称LaunchDaemon。plist中排除的plist扩展

ProgramArguments就是调用文件打开并启动

RunAtLoad使得在重新启动这个plist中推出

StartInterval将使LaunchDaemon.plist 1秒后,如果用户打开备份应用程序退出应用程序,如果用户仍然在应用程序什么都不会发生

确保您LaunchDaemon的权限设置为

0644 root:wheel 

你仍然可以使用你的mobileconfig使home键被禁用。一旦评估完成,您可以禁用LaunchDaemon,以便应用程序停止使用以下命令重新启动自己: launchctl unload/System/Library/LaunchDaemon/com.gauravstomar.plist

让我知道您是否需要任何帮助。

+0

我们不想要一个JailBreak解决方案:( – GauravSTomar

+0

因为我们需要将它发布到用户设备的临时基础上 – GauravSTomar

0

没有越狱,应用程序是沙箱。该应用程序根本无法访问主页按钮。你真的不应该在家里按钮搞乱。

除了“引导”时,您还可以使用“限制”,这将允许您禁用所有接受打开你的应用程序。您可以禁用苹果特定的应用程序包括Safari,和阻止用户安装的应用程序,删除应用程序,进行购买,等...

我们有许多的iPod带票扫描应用程序,我们租出去给我们的客户接触。我们利用“限制”来禁用除应用程序以外的所有内容。到目前为止,最有用的限制是阻止人们删除应用程序 - 即使在出现警告提示后,有多少人会意外删除应用程序也是不可思议的。

+0

如果我没有错,您是否可以通过移动配置文件? – GauravSTomar

+0

我们只是手动设置它设置 - >常规 - >限制 – Luke

+0

我们想从我们的应用程序中完成。 – GauravSTomar

相关问题