I am able to find only about Display popup permission with canDrawOverlay()
permission`.
I want to enable auto-start for the device if it is not enabled.
I have found a solution for Xiaomi, honor and let.
if(Build.BRAND.equalsIgnoreCase("xiaomi") ){ Intent intent = new Intent(); intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity")); startActivity(intent); }else if(Build.BRAND.equalsIgnoreCase("Letv")){ Intent intent = new Intent(); intent.setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity")); startActivity(intent); } else if(Build.BRAND.equalsIgnoreCase("Honor")){ Intent intent = new Intent(); intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity")); startActivity(intent); }
There's no way to find out whether the Auto-start option is enabled or not. You can manually check under Security permissions => Autostart => Enable Autostart .
You need to give permissions in the in build security application for xiaomi. 1. open the security app 2. go to permissions 3. go to auto start 4. enable the applications that you want to keep running in the background!
To give this method a try, open Settings and go to the Application Manager. It should be in "Installed Apps" or "Applications," depending on your device. Select an app from the list of downloaded apps and turn the Autostart option on or off.
Please check the following solution to enable the floating window
and autostart permission
for OPPO
and VIVO
devices.
There's no way to find out whether the Auto-start option is enabled or not. You can manually check under Security permissions => Autostart => Enable Autostart
.
private void initOPPO() { try { Intent i = new Intent(Intent.ACTION_MAIN); i.setComponent(new ComponentName("com.oppo.safe", "com.oppo.safe.permission.floatwindow.FloatWindowListActivity")); startActivity(i); } catch (Exception e) { e.printStackTrace(); try { Intent intent = new Intent("action.coloros.safecenter.FloatWindowListActivity"); intent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.floatwindow.FloatWindowListActivity")); startActivity(intent); } catch (Exception ee) { ee.printStackTrace(); try{ Intent i = new Intent("com.coloros.safecenter"); i.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.sysfloatwindow.FloatWindowListActivity")); startActivity(i); }catch (Exception e1){ e1.printStackTrace(); } } } }
private static void autoLaunchVivo(Context context) { try { Intent intent = new Intent(); intent.setComponent(new ComponentName("com.iqoo.secure", "com.iqoo.secure.ui.phoneoptimize.AddWhiteListActivity")); context.startActivity(intent); } catch (Exception e) { try { Intent intent = new Intent(); intent.setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity")); context.startActivity(intent); } catch (Exception ex) { try { Intent intent = new Intent(); intent.setClassName("com.iqoo.secure", "com.iqoo.secure.ui.phoneoptimize.BgStartUpManager"); context.startActivity(intent); } catch (Exception exx) { ex.printStackTrace(); } } } }
if (Build.MANUFACTURER.equalsIgnoreCase("oppo")) { try { Intent intent = new Intent(); intent.setClassName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"); startActivity(intent); } catch (Exception e) { try { Intent intent = new Intent(); intent.setClassName("com.oppo.safe", "com.oppo.safe.permission.startup.StartupAppListActivity"); startActivity(intent); } catch (Exception ex) { try { Intent intent = new Intent(); intent.setClassName("com.coloros.safecenter", "com.coloros.safecenter.startupapp.StartupAppListActivity"); startActivity(intent); } catch (Exception exx) { } } } }
Use this helper class
public class AutoStartHelper { /*** * Xiaomi */ private final String BRAND_XIAOMI = "xiaomi"; private String PACKAGE_XIAOMI_MAIN = "com.miui.securitycenter"; private String PACKAGE_XIAOMI_COMPONENT = "com.miui.permcenter.autostart.AutoStartManagementActivity"; /*** * Letv */ private final String BRAND_LETV = "letv"; private String PACKAGE_LETV_MAIN = "com.letv.android.letvsafe"; private String PACKAGE_LETV_COMPONENT = "com.letv.android.letvsafe.AutobootManageActivity"; /*** * ASUS ROG */ private final String BRAND_ASUS = "asus"; private String PACKAGE_ASUS_MAIN = "com.asus.mobilemanager"; private String PACKAGE_ASUS_COMPONENT = "com.asus.mobilemanager.powersaver.PowerSaverSettings"; /*** * Honor */ private final String BRAND_HONOR = "honor"; private String PACKAGE_HONOR_MAIN = "com.huawei.systemmanager"; private String PACKAGE_HONOR_COMPONENT = "com.huawei.systemmanager.optimize.process.ProtectActivity"; /** * Oppo */ private final String BRAND_OPPO = "oppo"; private String PACKAGE_OPPO_MAIN = "com.coloros.safecenter"; private String PACKAGE_OPPO_FALLBACK = "com.oppo.safe"; private String PACKAGE_OPPO_COMPONENT = "com.coloros.safecenter.permission.startup.StartupAppListActivity"; private String PACKAGE_OPPO_COMPONENT_FALLBACK = "com.oppo.safe.permission.startup.StartupAppListActivity"; private String PACKAGE_OPPO_COMPONENT_FALLBACK_A = "com.coloros.safecenter.startupapp.StartupAppListActivity"; /** * Vivo */ private final String BRAND_VIVO = "vivo"; private String PACKAGE_VIVO_MAIN = "com.iqoo.secure"; private String PACKAGE_VIVO_FALLBACK = "com.vivo.perm;issionmanager"; private String PACKAGE_VIVO_COMPONENT = "com.iqoo.secure.ui.phoneoptimize.AddWhiteListActivity"; private String PACKAGE_VIVO_COMPONENT_FALLBACK = "com.vivo.permissionmanager.activity.BgStartUpManagerActivity"; private String PACKAGE_VIVO_COMPONENT_FALLBACK_A = "com.iqoo.secure.ui.phoneoptimize.BgStartUpManager"; /** * Nokia */ private final String BRAND_NOKIA = "nokia"; private String PACKAGE_NOKIA_MAIN = "com.evenwell.powersaving.g3"; private String PACKAGE_NOKIA_COMPONENT = "com.evenwell.powersaving.g3.exception.PowerSaverExceptionActivity"; private AutoStartHelper() { } public static AutoStartHelper getInstance() { return new AutoStartHelper(); } public void getAutoStartPermission(Context context) { String build_info = Build.BRAND.toLowerCase(); switch (build_info) { case BRAND_ASUS: autoStartAsus(context); break; case BRAND_XIAOMI: autoStartXiaomi(context); break; case BRAND_LETV: autoStartLetv(context); break; case BRAND_HONOR: autoStartHonor(context); break; case BRAND_OPPO: autoStartOppo(context); break; case BRAND_VIVO: autoStartVivo(context); break; case BRAND_NOKIA: autoStartNokia(context); break; } } private void autoStartAsus(final Context context) { if (isPackageExists(context, PACKAGE_ASUS_MAIN)) { showAlert(context, (dialog, which) -> { try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_ASUS_MAIN, PACKAGE_ASUS_COMPONENT); } catch (Exception e) { e.printStackTrace(); } dialog.dismiss(); }); } } private void showAlert(Context context, DialogInterface.OnClickListener onClickListener) { new AlertDialog.Builder(context).setTitle("Allow AutoStart") .setMessage("Please enable auto start in settings.") .setPositiveButton("Allow", onClickListener).show().setCancelable(false); } private void autoStartXiaomi(final Context context) { if (isPackageExists(context, PACKAGE_XIAOMI_MAIN)) { showAlert(context, (dialog, which) -> { try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_XIAOMI_MAIN, PACKAGE_XIAOMI_COMPONENT); } catch (Exception e) { e.printStackTrace(); } }); } } private void autoStartLetv(final Context context) { if (isPackageExists(context, PACKAGE_LETV_MAIN)) { showAlert(context, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_LETV_MAIN, PACKAGE_LETV_COMPONENT); } catch (Exception e) { e.printStackTrace(); } } }); } } private void autoStartHonor(final Context context) { if (isPackageExists(context, PACKAGE_HONOR_MAIN)) { showAlert(context, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_HONOR_MAIN, PACKAGE_HONOR_COMPONENT); } catch (Exception e) { e.printStackTrace(); } } }); } } private void autoStartOppo(final Context context) { if (isPackageExists(context, PACKAGE_OPPO_MAIN) || isPackageExists(context, PACKAGE_OPPO_FALLBACK)) { showAlert(context, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_OPPO_MAIN, PACKAGE_OPPO_COMPONENT); } catch (Exception e) { e.printStackTrace(); try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_OPPO_FALLBACK, PACKAGE_OPPO_COMPONENT_FALLBACK); } catch (Exception ex) { ex.printStackTrace(); try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_OPPO_MAIN, PACKAGE_OPPO_COMPONENT_FALLBACK_A); } catch (Exception exx) { exx.printStackTrace(); } } } } }); } } private void autoStartVivo(final Context context) { if (isPackageExists(context, PACKAGE_VIVO_MAIN) || isPackageExists(context, PACKAGE_VIVO_FALLBACK)) { showAlert(context, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_VIVO_MAIN, PACKAGE_VIVO_COMPONENT); } catch (Exception e) { e.printStackTrace(); try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_VIVO_FALLBACK, PACKAGE_VIVO_COMPONENT_FALLBACK); } catch (Exception ex) { ex.printStackTrace(); try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_VIVO_MAIN, PACKAGE_VIVO_COMPONENT_FALLBACK_A); } catch (Exception exx) { exx.printStackTrace(); } } } } }); } } private void autoStartNokia(final Context context) { if (isPackageExists(context, PACKAGE_NOKIA_MAIN)) { showAlert(context, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { try { PrefUtil.writeBoolean(context, PrefUtil.PREF_KEY_APP_AUTO_START, true); startIntent(context, PACKAGE_NOKIA_MAIN, PACKAGE_NOKIA_COMPONENT); } catch (Exception e) { e.printStackTrace(); } } }); } } private void startIntent(Context context, String packageName, String componentName) throws Exception { try { Intent intent = new Intent(); intent.setComponent(new ComponentName(packageName, componentName)); context.startActivity(intent); } catch (Exception var5) { var5.printStackTrace(); throw var5; } } private Boolean isPackageExists(Context context, String targetPackage) { List<ApplicationInfo> packages; PackageManager pm = context.getPackageManager(); packages = pm.getInstalledApplications(0); for (ApplicationInfo packageInfo : packages) { if (packageInfo.packageName.equals(targetPackage)) { return true; } } return false; } }
in your activity
AutoStartHelper.getInstance().getAutoStartPermission(this);
there is no way to track that we have enabled autostart or not.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With