Settings Panelsとは
Android Q10から新しく追加されたAPIで、
自アプリのコンテキスト内でユーザー設定を表示し変更を可能にする機能です。
つまり、設定アプリに移動しなくて済むためユーザー操作の手間を減らすことができます。
設定できる項目
- ACTION_INTERNET_CONNECTIVITY
- Wi-Fi、モバイルデータ、機内モードなどのインターネット接続状況の確認や設定
- ACTION_WIFI
- Wi-Fiの接続確認や設定
- ACTION_NFC
- NFCの設定状況や変更
- ACTION_VOLUME
- 各種音量の確認や設定
使い方
準備
build.gradle
android {
compileSdkVersion 29
defaultConfig {
// 省略
targetSdkVersion 29
}
}
実装
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// ACTION_INTERNET_CONNECTIVITY
settings_internet_connectivity.setOnClickListener {
startActivityForResult(Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY), REQUEST_CODE)
}
// ACTION_WIFI
settings_wifi.setOnClickListener {
startActivityForResult(Intent(Settings.Panel.ACTION_WIFI), REQUEST_CODE)
}
// ACTION_NFC
settings_nfc.setOnClickListener {
startActivityForResult(Intent(Settings.Panel.ACTION_NFC), REQUEST_CODE)
}
// ACTION_VOLUME
settings_volume.setOnClickListener {
startActivityForResult(Intent(Settings.Panel.ACTION_VOLUME), REQUEST_CODE)
}
}
}
完成イメージ
補足
- AndroidXによるバックポートも予定している。(今後のアップデートに期待)
- コールバックは#onActivityResult()で受け取る。
参考資料
追記
・タイトルをQから10に修正