如何以编程方式在xiaomi中启用应用程序的自动启动

时间:2016-03-16 12:09:09

标签: android

我想知道xiaomi是否可以提供任何应用程序的后台服务? 我的应用程序中有服务需要一直在后台运行,在所有设备中它的工作正常除了小米,它是如何以编程方式完成的?

2 个答案:

答案 0 :(得分:9)

适用于xiaomi,oppo,vivo和oneplus手机。

    try {
        Intent intent = new Intent();
        String manufacturer = android.os.Build.MANUFACTURER;
        if ("xiaomi".equalsIgnoreCase(manufacturer)) {
            intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
        } else if ("oppo".equalsIgnoreCase(manufacturer)) {
            intent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"));
        } else if ("vivo".equalsIgnoreCase(manufacturer)) {
            intent.setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity"));
        } else if("oneplus".equalsIgnoreCase(manufacturer)) { 
            intent.setComponent(new ComponentName("com.oneplus.security", "com.oneplus.security.chainlaunch.view.ChainLaunchAppListAct‌​ivity")); }

        List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
        if  (list.size() > 0) {
            context.startActivity(intent);
        } 
    } catch (Exception e) {
        Crashlytics.logException(e);
    }

答案 1 :(得分:4)

除非有来自xiaomi的api允许您访问该功能,否则您无法从代码执行此操作。我猜自动启动管理器是一个应用程序(具有系统应用程序的权限,因为xiaomi修改了os的一部分),因此不可能。另一方面,如果设备已植根,您实际上可以禁用自动启动管理器。

仍然是whatsapp,脸谱和更多的应用程序这样做可能是因为他们与小米有联系在白名单中。但这只是猜测。