【问题标题】:How to Enable Autostart option programmatically in Samsung devices?如何在三星设备中以编程方式启用自动启动选项?
【发布时间】:2020-01-06 07:01:13
【问题描述】:

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

  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);
            }

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

【问题讨论】:

    标签: android


    【解决方案1】:

    其他答案是正确的,com.samsung.android.sm 是 N/7.0/24 及更高版本上的包名称,但是我发现在 Q/10.0/29 上,活动名称已从 com.samsung.android.sm.ui.battery.BatteryActivity 更改为 @987654323 @。我不确定是 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"}
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我也没有找到任何解决方案。如果你知道并告诉我 infinix 手机,请告诉我
      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2018-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-28
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        相关资源
        最近更新 更多