禁用主页按钮而不重启设备

时间:2012-10-19 10:02:01

标签: iphone objective-c ios

我希望在从OTA安装我的应用程序后,设备的主页按钮将无法正常工作,因此用户无法从应用程序中退出。我的挖掘让我得到了以下结果

A)我有一种方法可以通过"mobileconfig"配置文件禁用主页按钮,但它需要重新启动设备,用户必须在启动后打开我的应用程序,我想这样做而不需要像私有这样的东西重新启动非Jail-broken设备上的框架。我想知道可能是非越狱设备吗?

C)如果无法禁用私有框架的主页按钮,那么在启动设备后是否有办法打开应用程序?,因为启动时会加载某些越狱应用程序/进程。

[注意:我不想将我的应用程序提交给iTunes。]

4 个答案:

答案 0 :(得分:19)

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

这解释了the Guided Access for iOS 6 apps

答案 1 :(得分:1)

这个问题的正式答案是“你无法在ios设备中禁用主页按钮,它是os级别的架构,而且你没有获得它的授权。”

您需要深入了解操作系统流程,以进行任何可能非常困难的更改。

好吧,如果你改变了你的视线,那么在ios 6中有一个开放而简单的解决方案,称为Guided Access。

答案 2 :(得分:1)

如果您能够越狱,您的设备可以创建LaunchDaemon或使用现有的LaunchDaemon。 LaunchDaemon是plist格式的文件,在重新启动和启动设备时调用。您还需要一个由K3A

创建的名为open的文件

here

下载open

您需要将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>
  

Label必须与LaunchDaemon.plist同名,不包括plist扩展名

     

ProgramArguments用于调用文件并启动应用程序

     

RunAtLoad在重新启动时启用此plist启动

     

如果用户退出应用程序,StartInterval将使LaunchDaemon.plist在1秒后重新打开,如果用户仍在应用程序中,则不会发生任何事情

确保LaunchDaemon的权限设置为

0644 root:wheel

您仍然可以使用您的mobileconfig,以便禁用主页按钮。评估完成后,您可以禁用LaunchDaemon,以便应用程序停止使用以下命令重新启动自身 launchctl unload/System/Library/LaunchDaemon/com.gauravstomar.plist

如果您需要更多帮助,请与我们联系。

答案 3 :(得分:0)

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

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

我们有一些iPod touch,我们向客户出租了一个票据扫描应用程序。我们使用“限制”来禁用我们的应用程序以外的所有内容。到目前为止,最有用的限制是阻止人们删除应用程序 - 即使在警告提示之后,有多少人会意外删除应用程序,这是令人难以置信的。