首页 > 解决方案 > 如何以编程方式在 Android Q 中打开设置面板?

问题描述

根据Android Q的新功能,有一个显示关键连接设置的内联设置面板,可让用户修改不同的连接设置,例如飞行模式、wifi、音量、NFC 和互联网连接

如何从我的应用程序以编程方式打开该设置面板?就像下面的截图一样。

在此处输入图像描述

标签: androidandroid-settingsandroid-10.0

解决方案


使用 Android Q 中可用的设置面板 API,这非常简单且易于实现。

很简单,我们需要使用新的Settings.Panel操作之一来触发意图。

打开 Internet 连接面板:

在此处输入图像描述

爪哇:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    Intent panelIntent = new Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY)
    startActivityForResult(panelIntent, 545)
}

科特林:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    val panelIntent = Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY)
    startActivityForResult(panelIntent, 545)
}


打开音量控制面板:

在此处输入图像描述

爪哇:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    Intent panelIntent = new Intent(Settings.Panel.ACTION_VOLUME)
    startActivityForResult(panelIntent, 545)
}

科特林:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    val panelIntent = Intent(Settings.Panel.ACTION_VOLUME)
    startActivityForResult(panelIntent, 545)
}


打开WIFI面板:

在此处输入图像描述

爪哇:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    Intent panelIntent = new Intent(Settings.Panel.ACTION_WIFI)
    startActivityForResult(panelIntent, 545)
}

科特林:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    val panelIntent = Intent(Settings.Panel.ACTION_WIFI)
    startActivityForResult(panelIntent, 545)
}


打开 NFC 面板:

在此处输入图像描述

爪哇:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    Intent panelIntent = new Intent(Settings.Panel.ACTION_NFC)
    startActivityForResult(panelIntent, 545)
}

科特林:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    val panelIntent = Intent(Settings.Panel.ACTION_NFC)
    startActivityForResult(panelIntent, 545)
}

在这里,您可以从 Android 官方文档中查看有关设置面板的更多信息:

1) https://developer.android.com/preview/features#settings-panels

2) https://developer.android.com/reference/android/provider/Settings.Panel


推荐阅读