Posted at

Android Qから始めるSettings Panels


Settings Panelsとは

Android Qから新しく追加されたAPIで、

自アプリのコンテキスト内でユーザー設定を表示し変更を可能にする機能です。

つまり、設定アプリに移動しなくて済むためユーザー操作の手間を減らすことができます。

Screenshot_1565703351.png


設定できる項目


  • 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)
}
}
}



完成イメージ

settings_panels.gif


補足


  • AndroidXによるバックポートも予定している。(今後のアップデートに期待)

  • コールバックは#onActivityResult()で受け取る。


参考資料

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