繁体   English   中英

如何通过 Intent 在设置中打开 android 默认应用程序活动?

[英]How to open android default apps activity in setting via Intent?

如何通过 Intent 打开 android 设置中的默认处理程序页面? 或者我们如何才能直接打开默认的短信页面?

在此处输入图像描述

似乎从 android Q 到上层我们不能Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT

找到答案,您可以通过以下代码打开此页面:

//This code will work only on android version N and above
//Add if condition to prevent crash on older devices

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        Intent intent = new Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        if (requestCode != -1)
             act.startActivityForResult(intent, requestCode);
        else
             act.startActivity(intent);
    }

使用此代码打开意图默认应用程序的另一种方法,在这种情况下,我尝试设置默认启动器应用程序

// dialog set default app
@RequiresApi(Build.VERSION_CODES.Q)
private fun showLauncherSelection() {
    val roleManager = this.getSystemService(Context.ROLE_SERVICE)
            as RoleManager
    if (roleManager.isRoleAvailable(RoleManager.ROLE_HOME) &&
        !roleManager.isRoleHeld(RoleManager.ROLE_HOME)
    ) {
        val intent = roleManager.createRequestRoleIntent(RoleManager.ROLE_HOME)
        startActivityForResult(intent,0)
    }
}

您可以在此Role Manager之后更改ROLE_HOME来设置其他默认应用程序。 如果要更改短信默认应用,请尝试将ROLE_HOME更改为ROLE_SMS

暂无
暂无

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

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