是否有针对每个应用程序的语言操作可以从应用程序打开设置屏幕?

Ben*_*det 7 android android-appcompat

要从意图打开通知设置,我们可以使用该操作Settings.ACTION_APP_NOTIFICATION_SETTINGS

有很多不同的操作可用于打开特定的设置屏幕,但我没有找到打开新的每应用程序语言设置屏幕的操作

我错过了吗?

我尝试了不同的字符串"android.settings.APP_LANGUAGES_SETTINGS",但没有成功。

Emi*_*mil 2

您可以使用ACTION_APP_LOCALE_SETTINGS意图。它需要一个Uri来指定应用程序。

使用方法如下:

val intent = Intent(Settings.ACTION_APP_LOCALE_SETTINGS)
val uri = Uri.fromParts("package", context?.packageName, null)
intent.data = uri
    
startActivity(intent)
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到相关文档。


编辑

正如 @ProgrAmmar 指出的,这是在 API 级别 33 中添加的。

你可以这样检查:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    // Your code for API level 33 or higher
    // Enable your feature here
} else {
    // Your code for API levels below 33
    // Handle the case where the feature is not supported
}

Run Code Online (Sandbox Code Playgroud)

API 级别 33 的版本代码是,但您可以在此处TIRAMISU查看代码名称的完整列表。

注意: 在进行这样的编码时,考虑为用户构建替代方案非常重要。对于选择可能不那么重要的每个应用程序语言(因为用户不会错过它,因为没有其他应用程序支持它),但如果有一些功能是您的应用程序不可或缺的,您应该添加一个选项其他用户或重新考虑您的方法。