Help us understand the problem. What is going on with this article?

【Android】Android 10から始めるSettings Panels

Settings Panelsとは

Android Q10から新しく追加された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


追記

・タイトルをQから10に修正

HaSuzuki
Android Developer
lifull
日本最大級の不動産・住宅情報サイト「LIFULL HOME'S」を始め、人々の生活に寄り添う様々な情報サービス事業を展開しています。
https://lifull.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away