Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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 如何阻止其他应用程序?_Java_Android - Fatal编程技术网

Java 如何阻止其他应用程序?

Java 如何阻止其他应用程序?,java,android,Java,Android,我见过很多家长控制和生产力应用程序,它们可以通过在安装时请求您的用户访问权限来阻止您访问某些您想要的应用程序。他们是如何做到这一点的,任何帮助或相关信息都是值得感谢的这些应用只需检查当前正在运行的任务,然后停止它们的活动 public class TaskChecker{ public static String getForegroundApplication(Context context){ ActivityManager am=(ActivityManag

我见过很多家长控制和生产力应用程序,它们可以通过在安装时请求您的用户访问权限来阻止您访问某些您想要的应用程序。他们是如何做到这一点的,任何帮助或相关信息都是值得感谢的

这些应用只需检查当前正在运行的任务,然后停止它们的活动

    public class TaskChecker{
    public static String getForegroundApplication(Context context){
        ActivityManager am=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
        RunningTaskInfo foreground=am.getRunningTasks(1).get(0);
        return foreground.topActivity.getPackageName();
    }
}
这段代码只是检查当前正在运行的代码,看看它是否是一个活动。这就是如何使用该代码阻止WhatsApp

String currentRunningApp = TaskChecker.getForegroundApplication(yourContext);

if(currentRunningApp.equals("com.whatsapp")){
ActivityManager am = (ActivityManager)yourContext.getSystemService(Context.ACTIVITY_SERVICE);    

    Intent startMain = new Intent(Intent.ACTION_MAIN); 
    startMain.addCategory(Intent.CATEGORY_HOME); 
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    this.startActivity(startMain);

    am.killBackgroundProcesses(currentRunningApp );
}
PS您需要以下权限,并确保每分钟左右从服务运行一次

<android:name="android.permission.GET_TASKS">
<android:name="android.permission.KILL_BACKGROUND_PROCESSES">


是的,你可以从阅读《和平与你同在》开始,我已经编辑了我的解决方案:)