我在Android开发方面相当新,我有一个应用程序,我正在为孩子们工作。我希望应用程序在设备启动时自动启动。当应用程序运行时,我希望它阻止访问任何其他屏幕。禁用主页按钮,阻止访问浏览器,设置等。
这可能吗?我偶然发现了这个链接http://www.androidsnippets.com/autostart-an-application-at-bootup,但是有些人认为让活动自动启动不是一个好方法。
谢谢: - )
答案 0 :(得分:4)
听起来你需要自己的启动器,因为只有启动器可以阻止访问不必要的屏幕,而主页按钮将被你的启动器“阻止”。
它还将解决“启动”问题。
您需要做的就是在Activity
中声明AndroidManifest
,如下所示:
<activity
android:name="your.package.ActivityName
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
激活您的创造力,并根据您的需求构建发射器 祝你好运!
答案 1 :(得分:3)
这是将应用程序设置为设备中的启动应用程序 创建一个类扩展BroadCast接收器
public class BootUpReciever extends BroadcastReceiver
{
@Override
public void onReceive(final Context context, Intent intent) {
Intent i = new Intent(context, ServerPreferenceActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
将清单文件的权限添加到多余的启动接收器
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
注册在manifest.xml中扩展Broadcast接收器的接收器
<receiver android:enabled="true" android:name="com.app.reciever.BootUpReciever">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
注意:在src文件夹的单独包中创建接收器类,以实现工作实现。
答案 2 :(得分:2)
关于你的问题:
“我希望应用程序在设备启动时自动启动。”
您可以实现BroadcastReceiver来捕获RECEIVE_BOOT_COMPLETED事件。请参阅this post。
“当应用程序运行时,我希望它可以阻止访问任何其他屏幕。”
您可以在销毁或暂停时重新启动活动。您可以在后台Service中查看此内容。请查看this post了解更多信息。
“禁用主页按钮”
根本不可能。你必须依靠2的结果。
“阻止访问浏览器,设置等。”
类似于3. - 你无法真正避免这种情况。但是,您可以检查您的应用是否在顶部并重新启动,如果没有。
希望这有帮助......干杯!
答案 3 :(得分:1)
您可以构建一个 Home App ,它将成为用户的设备界面,这样您就可以管理用户体验。看看这里:SO Question
但构建启动器/家庭应用程序包含很多责任。您将负责所有用户访问: