【发布时间】:2019-12-03 19:57:18
【问题描述】:
根据Android Q的新功能,有一个内嵌设置面板显示关键的连接设置,让用户可以修改不同的连接设置,例如飞行模式、 wifi、音量、NFC 和互联网连接。
如何从我的应用程序中以编程方式打开该设置面板?如下图所示。
【问题讨论】:
标签: android android-settings android-10.0
根据Android Q的新功能,有一个内嵌设置面板显示关键的连接设置,让用户可以修改不同的连接设置,例如飞行模式、 wifi、音量、NFC 和互联网连接。
如何从我的应用程序中以编程方式打开该设置面板?如下图所示。
【问题讨论】:
标签: android android-settings android-10.0
使用 Android Q 中可用的设置面板 API,这非常简单且易于实现。
很简单,我们需要使用新的Settings.Panel 操作之一来触发意图。
Java:
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)
}
Java:
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)
}
Java:
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)
}
Java:
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
【讨论】:
startActivityForResult 的调用中的 545 是什么?
onActivityResult返回一个结果,你可以检查这个结果是哪个请求返回的。