package com.insuite.technicien; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Build; public class BootReceiver extends BroadcastReceiver { private static final String ACTION_QUICK_BOOT_POWER_ON = "android.intent.action.QUICKBOOT_POWERON"; private static final String ACTION_HTC_QUICK_BOOT_POWER_ON = "com.htc.intent.action.QUICKBOOT_POWERON"; @Override public void onReceive(Context context, Intent intent) { if (intent == null || intent.getAction() == null) { return; } String action = intent.getAction(); if (!Intent.ACTION_BOOT_COMPLETED.equals(action) && !Intent.ACTION_LOCKED_BOOT_COMPLETED.equals(action) && !Intent.ACTION_MY_PACKAGE_REPLACED.equals(action) && !ACTION_QUICK_BOOT_POWER_ON.equals(action) && !ACTION_HTC_QUICK_BOOT_POWER_ON.equals(action)) { return; } DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); if (devicePolicyManager != null && devicePolicyManager.isDeviceOwnerApp(context.getPackageName())) { ComponentName adminComponent = new ComponentName(context, KioskDeviceAdminReceiver.class); devicePolicyManager.setLockTaskPackages(adminComponent, new String[]{ context.getPackageName(), "com.android.settings" }); IntentFilter homeFilter = new IntentFilter(Intent.ACTION_MAIN); homeFilter.addCategory(Intent.CATEGORY_HOME); homeFilter.addCategory(Intent.CATEGORY_DEFAULT); devicePolicyManager.addPersistentPreferredActivity( adminComponent, homeFilter, new ComponentName(context, MainActivity.class) ); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { devicePolicyManager.setKeyguardDisabled(adminComponent, true); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { devicePolicyManager.setStatusBarDisabled(adminComponent, true); devicePolicyManager.setLockTaskFeatures(adminComponent, DevicePolicyManager.LOCK_TASK_FEATURE_NONE); } } Intent launchIntent = new Intent(context, MainActivity.class); launchIntent.setAction(Intent.ACTION_MAIN); launchIntent.addCategory(Intent.CATEGORY_HOME); launchIntent.addCategory(Intent.CATEGORY_DEFAULT); launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); context.startActivity(launchIntent); } }