4

让我描述一下我想要什么:我想构建一个“主应用程序”并将其设置为当手机通电时,它立即进入主应用程序。用户永远不能退出这个应用程序(这将用于家长控制),他只能从其中启动其他应用程序。

基本上它就像一个“自定义桌面”。

我必须强调,这个应用程序永远不会退出是很重要的。只要手机启动,这是用户唯一可以访问的环境。

现在,在我解释了我需要什么之后,我需要你的帮助来告诉我我在寻找什么。这是我一直听说的某种“默认启动器”吗?或者这个怎​​么称呼?我该怎么做?

谢谢

4

4 回答 4

6

将此添加到清单中。

<receiver
            android:name=".Bootupclass"
            android:enabled="true"
            android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >

</receiver>

引导类

public class Bootupclass extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        //write intent here 
    }

}
于 2013-06-26T09:06:04.157 回答
3

我需要有人给我制作应用程序所需的确切代码:

开始,

如果您将应用程序作为启动器应用程序,并且如果它是您系统中唯一的启动器应用程序,那么它当然会在您打开设备时启动。而且当您单击主页按钮时,由于您的应用程序是系统中唯一的启动器应用程序,因此也会启动相同的应用程序。

所以 ,

1)启动时启动 2)是按下主页按钮(“桌面”)时的默认操作

都可以合并为1。

您提到您的手机已植根,因此实现您所需的最简单方法是

1.在清单中仅使用这些行安装您的应用程序。即在你的第一个活动中。没有其他要求。(这将使您的应用程序成为启动器应用程序)

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.HOME"/>
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

2.在您的设备中卸载默认启动器应用程序。

于 2013-07-13T05:44:22.283 回答
1

问题正文中询问的内容与问题标题不同。

收听BOOT_COMPLETED将按照标题的要求进行 - 在设备开机或重新启动时将控制权交给应用程序。

仅仅达到真正的目标是不够的——阻止用户退出应用程序并进入“正常”主屏幕——一旦用户按下“退出”或“主页”,他就会离开你的应用程序。虽然您可以拦截“退出”按钮并阻止它退出您的应用程序,但无法以编程方式阻止“主页”按钮。

为了使应用程序像家长控制并防止用户访问不需要的应用程序,您需要实现“自定义主屏幕”或“自定义启动器”(这是同一件事)。

这是一个相当大的话题,但这似乎是一个很好的起点:Android - 创建自定义启动器

由于作者坚持使用“精确代码”,为了让您的应用程序启动而不是主屏幕(在启动或按下“主页”按钮后),您需要在清单中添加以下内容:

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME"/>
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

安装后,按“主页”按钮 - 您将可以选择标准启动器或您的应用程序。选中“默认使用”并选择您的应用程序 - 从现在开始,它将启动而不是正常的主屏幕。

但请注意,自定义启动器几乎没有已知问题。一个是 - 您必须阻止对设置的访问,否则用户可以切换回默认启动器。此外,在您的应用程序更新后(即您发布新版本),用户将被询问要使用哪个主屏幕,并且可以选择默认启动器。

于 2013-07-09T14:40:16.463 回答
1

I must stress out, it is important that this app never exits我相信这是不可能的。

根据您的要求,您似乎需要 MDM 解决方案。Android 2.2 以上的设备管理 API 已经可用。查看 http://developer.android.com/guide/topics/admin/device-admin.html

用户必须安装您的应用程序并允许它成为设备管理员。(您可以从设置 -> 位置和安全 -> 设备管理员查看当前可用的管理员)。现在,作为管理员,您可以控制设备上的功能,例如。禁止卸载应用程序,阻止安装特定应用程序,禁止启动特定应用程序。如果安全受到破坏等,请擦除设备。您还可以防止您的应用程序被卸载。

有些应用程序具有此类功能。我可以在脑海中命名 Maas360。免责声明:我自己没有尝试过设备管理 api。

于 2013-07-13T06:09:00.980 回答