Android Q 设置面板

Android Q 引入了设置面板,它是一种API, 允许从应用程序上下文直接向用户展示设置。


当前文章首次编辑于Android Q Beta 1 版本,可能部分内容会在后期版本上发生变化,仅供参考

目的

避免了用户为了使用应用程序而需要进入设置来更改NFC移动数据等内容。

场景

例如,假设用户在其设备处于飞行模式时打开Web浏览器。 在Android Q之前,该应用只能显示一条通用消息,要求用户打开“设置”以恢复连接。 使用Android Q,浏览器应用程序可以显示一个内联面板,显示关键的连接设置,如飞行模式,Wi-Fi(包括附近的网络)和移动数据。 使用此面板,用户无需离开应用即可恢复连接。

使用

这一新功能目前暂提供了网络连接NFC音量三个设置面板,使我们可以访问这三个不同的设置面板,所有这些面板都可以通过简单的startActivity()调用启动。

网络连接

1
Settings.Panel.ACTION_INTERNET_CONNECTIVITY

android-q-beta-settings-panel-wifi-1.png

android-q-beta-settings-panel-wifi-1.png

面板属性:

  • 启用/禁用飞行模式
  • 启用/禁用WIFI连接
  • 启用/禁用移动数据
  • 更改WIFI连接
  • 导航到连接设置

NFC

1
Settings.Panel.ACTION_NFC

android-q-beta-settings-panel-nfc.png

面板属性:

  • 显示与近场通信(NFC)相关的所有设置。

音量

1
Settings.Panel.ACTION_VOLUME

android-q-beta-settings-panel-volume.png

面板属性:

  • 媒体音量
  • 通话音量
  • 铃声音量
  • 闹钟音量

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.xw.androidqtest

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.provider.Settings
import android.util.Log
import kotlinx.android.synthetic.main.activity_settings_panel.*

class SettingsPanelActivity : AppCompatActivity() {

private val tag: String = SettingsPanelActivity::class.java.simpleName

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_settings_panel)

btnConnectivity.setOnClickListener {
openSettings(Settings.Panel.ACTION_INTERNET_CONNECTIVITY)
}

btnNFC.setOnClickListener {
openSettings(Settings.Panel.ACTION_NFC)
}

btnVolume.setOnClickListener {
openSettings(Settings.Panel.ACTION_VOLUME)
}
}

private fun openSettings(panel: String) {
Log.d(tag, "panel:$panel")
val intent = Intent(panel)
startActivity(intent)
}
}

本文参考官方文档及示例简单总结,感谢您的阅读。如有不足,欢迎指正

0%