0

我是 Android 开发的新手,我有一个正在为孩子们开发的应用程序。我希望应用程序在设备启动时自行启动。当应用程序运行时,我希望它阻止访问任何其他屏幕。禁用主页按钮,阻止访问浏览器、设置等。

这可能吗?我偶然发现了这个链接http://www.androidsnippets.com/autostart-an-application-at-bootup,但有些人认为这不是让活动自动启动的好方法。

谢谢 :-)

4

4 回答 4

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>

激活您的创造力,并根据您的需要构建启动器。
祝你好运!

于 2013-05-09T12:07:24.383 回答
3

这是将应用程序设置为设备中的启动应用程序创建一个类扩展广播接收器

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 中注册扩展广播接收器的接收器

<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 文件夹中的单独包中创建接收器类以实现工作实现。

于 2013-05-09T12:01:01.347 回答
2

关于你的问题:

  1. “我希望应用程序在设备启动时自行启动。”

    您可以实现一个BroadcastReceiver来捕获 RECEIVE_BOOT_COMPLETED 事件。看到这个帖子

  2. “当应用程序运行时,我希望它阻止访问任何其他屏幕。”

    您可以在活动被破坏或暂停时重新启动活动。您可以在后台Service中检查这一点。查看这篇文章了解更多信息。

  3. “禁用主页按钮”

    根本不可能。您必须依靠 2. 的结果。

  4. “阻止访问浏览器、设置等”

    类似于 3. - 你无法真正避免这种情况。但是,您可以检查您的应用程序是否在顶部并重新启动它,如果没有。

希望这会有所帮助......干杯!

于 2013-05-09T12:09:31.833 回答
1

您可以构建一个家庭应用程序作为与用户的设备界面,这样您就可以管理用户体验。看看这里:所以问题

但是构建 Launcher/Home 应用程序需要承担很多责任。您将负责所有用户访问:

  • 设置
  • 电话
  • 其他应用
  • 基本的智能手机应用程序(邮件、日历...)。
于 2013-05-09T12:05:35.500 回答