9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-08-13

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()で受け取る。

参考資料


追記

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

9
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?