繁体   English   中英

如何在三星设备中以编程方式启用自动启动选项?

[英]How to Enable Autostart option programmatically in Samsung devices?

我正在使用后台服务,它不能在某些设备上运行,因为我必须为应用程序启用自动启动权限。 我想在需要的地方自动启用自动启动权限。 我正在使用此代码,但它会将我重定向到自动启动权限所在的窗口。 但是在三星手机中它没有指向那个窗口

  if ("xiaomi".equalsIgnoreCase(manufacturer)) {
                intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
                alertdialogue(intent);
            } else if ("oppo".equalsIgnoreCase(manufacturer)) {
                intent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"));
                alertdialogue(intent);
            } else if ("vivo".equalsIgnoreCase(manufacturer)) {
                intent.setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity"));
                alertdialogue(intent);
            } else if ("Letv".equalsIgnoreCase(manufacturer)) {
                intent.setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity"));
                alertdialogue(intent);
            } else if ("Honor".equalsIgnoreCase(manufacturer)) {
                intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity"));
                alertdialogue(intent);
            }

我想要三星设备的解决方案

其他答案正确地说com.samsung.android.sm是 N/7.0/24 及更高版本的包名称,但是我发现在 Q/10.0/29 上,活动名称已从com.samsung.android.sm.ui.battery.BatteryActivity更改com.samsung.android.sm.ui.battery.BatteryActivitycom.samsung.android.sm.battery.ui.BatteryActivity 我不确定 O 或 P。最好的办法是简单地列出所有可能的解决方案,然后依次尝试:

fun openSamsungBackgroundSettings() {

    val possibleIntents = mutableListOf<Intent>()
    val battery1 = "com.samsung.android.sm.ui.battery.BatteryActivity"
    val battery2 = "com.samsung.android.sm.battery.ui.BatteryActivity"
    val pkg = if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N)
        "com.samsung.android.lool"
    else
        "com.samsung.android.sm"
    possibleIntents.add(Intent().setComponent(ComponentName(pkg, battery1)))
    possibleIntents.add(Intent().setComponent(ComponentName(pkg, battery2)))
    //general settings as backup
    possibleIntents.add(Intent(Settings.ACTION_SETTINGS))
    possibleIntents.forEach {
        try {
            startActivity(it)
            return
        } catch (ex: Exception) {
            w(ex){"Failed to open intent:$it"}
        }
    }
}

new Intent().setComponent(new ComponentName("com.samsung.android.lool","com.samsung.android.sm.ui.battery.BatteryActivity"))

试试这个意图,但这是为了进行电池优化控制活动,没有找到适用于三星的确切 AutoStart,如果你找到了,请告诉我

有一些三星手机不支持此授权(没有电池优化活动)但是对于那些有两种情况

Android L 上的"com.samsung.android.sm", "com.samsung.android.sm.ui.battery.BatteryActivity"

Android N 上的"com.samsung.android.lool", "com.samsung.android.sm.ui.battery.BatteryActivity"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM