Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-自动启动应用程序并限制对其他应用程序的访问_Java_Android - Fatal编程技术网

Java Android-自动启动应用程序并限制对其他应用程序的访问

Java Android-自动启动应用程序并限制对其他应用程序的访问,java,android,Java,Android,我是Android开发的新手,我有一个为孩子开发的应用程序。我希望应用程序在设备启动时自动启动。当应用程序运行时,我希望它阻止访问任何其他屏幕。禁用主页按钮,禁止访问浏览器、设置等 这可能吗?我偶然发现了这个链接,但有几个人认为让活动自动启动不是一个好方法 谢谢:-这是将应用程序设置为设备中的启动应用程序 创建一个扩展广播接收器的类 public class BootUpReciever extends BroadcastReceiver { @Override public void onR

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

这可能吗?我偶然发现了这个链接,但有几个人认为让活动自动启动不是一个好方法


谢谢:-

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

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文件夹中的一个单独的包中创建receiver类,以实现工作实现。

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

但构建一个启动器/家庭应用程序需要承担很多责任。您将负责所有用户访问:

设置 电话 其他应用程序 基本智能手机应用程序邮件、日历。。。。
听起来您需要自己的启动器,因为只有启动器可以阻止访问不必要的屏幕,并且主按钮将被启动器阻止。 它还将解决启动问题

您只需在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>
激活你的创造力,并根据你的需要构建启动器。
祝你好运

关于你的问题:

我希望应用程序在设备启动时自动启动。 您可以实现用于捕获RECEIVE_BOOT_COMPLETED事件的。看

当应用程序运行时,我希望它阻止访问任何其他屏幕。 您可以在活动被破坏或暂停时重新启动它。你可以在后台检查一下。查看更多信息

禁用主页按钮 根本不可能。你必须依靠2的结果。在这里

阻止访问浏览器、设置等。 类似于3你真的无法避免这一点。但是,你可以检查你的应用程序是否在上面,如果不在上面,就重新启动它


希望这有助于。。。干杯

这不会阻止用户访问主屏幕或任何其他应用程序。这种方法将确保你的应用程序在启动时启动,以及单独的包是怎么回事?单独的包意味着在活动之外创建类,否则它将不会从清单路由接收方类。这种方法对我有效,可能还有其他方法。java包与java编译单元文件不同,您需要让广播接收器成为cu java源文件中的顶级类。谢谢这是我问题的第一部分。但我仍在努力解决如何锁定对其他应用程序的访问。您希望避免关闭您的应用程序。+1这实际上也是一个有趣的解决方案,尽管它要求将此启动器设置为默认值。根据必须实现的主屏幕功能,它可能有点复杂。但作为回报,你获得了很多控制权。我尝试了这个解决方案,它看起来是正确的方法,但我无法使用它,因为我缺乏Android方面的经验。我可以创建一个启动器,但问题是,每次我尝试打开另一个应用程序时,它都会给我一个可用启动器应用程序的列表,这与目的背道而驰,因为孩子可以选择默认应用程序,从而保证自己可以访问任何其他应用程序。不过我可能错过了什么。我不知道。