让我描述一下我想要什么:我想构建一个“主应用程序”并将其设置为当手机通电时,它立即进入主应用程序。用户永远不能退出这个应用程序(这将用于家长控制),他只能从其中启动其他应用程序。
基本上它就像一个“自定义桌面”。
我必须强调,这个应用程序永远不会退出是很重要的。只要手机启动,这是用户唯一可以访问的环境。
现在,在我解释了我需要什么之后,我需要你的帮助来告诉我我在寻找什么。这是我一直听说的某种“默认启动器”吗?或者这个怎么称呼?我该怎么做?
谢谢
让我描述一下我想要什么:我想构建一个“主应用程序”并将其设置为当手机通电时,它立即进入主应用程序。用户永远不能退出这个应用程序(这将用于家长控制),他只能从其中启动其他应用程序。
基本上它就像一个“自定义桌面”。
我必须强调,这个应用程序永远不会退出是很重要的。只要手机启动,这是用户唯一可以访问的环境。
现在,在我解释了我需要什么之后,我需要你的帮助来告诉我我在寻找什么。这是我一直听说的某种“默认启动器”吗?或者这个怎么称呼?我该怎么做?
谢谢
将此添加到清单中。
<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
}
}
我需要有人给我制作应用程序所需的确切代码:
开始,
如果您将应用程序作为启动器应用程序,并且如果它是您系统中唯一的启动器应用程序,那么它当然会在您打开设备时启动。而且当您单击主页按钮时,由于您的应用程序是系统中唯一的启动器应用程序,因此也会启动相同的应用程序。
所以 ,
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.在您的设备中卸载默认启动器应用程序。
问题正文中询问的内容与问题标题不同。
收听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>
安装后,按“主页”按钮 - 您将可以选择标准启动器或您的应用程序。选中“默认使用”并选择您的应用程序 - 从现在开始,它将启动而不是正常的主屏幕。
但请注意,自定义启动器几乎没有已知问题。一个是 - 您必须阻止对设置的访问,否则用户可以切换回默认启动器。此外,在您的应用程序更新后(即您发布新版本),用户将被询问要使用哪个主屏幕,并且可以选择默认启动器。
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。