Androidアプリからシステム設定画面を呼び出すにはSettingsに定義されているActionを使用します。
以下のようにIntentにActionを設定するだけです。
そのままだと同一タスクになってしまうので、Intent.FLAG_ACTIVITY_NEW_TASK
を追加する場合が多いかと思います。
startActivity(
Intent(Settings.ACTION_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
)
アプリの詳細設定など、システム全体では無く、特定のアプリの設定を開く場合、必ず、でないのがややこしいところですが、多くの場合、以下のようにpackage:
スキームでアプリのパッケージを指定します。
startActivity(
Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
.setData(Uri.parse("package:${packageName}"))
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
)
滅多に使うことはないかもしれませんが、どの画面を呼び出せるか調べて見ました。
※API 34 Google PlayイメージのAVDで検証しています。
Settings.ACTION_SETTINGS
Settings.ACTION_APN_SETTINGS
「APN設定」が起動します。
AVDなので中身は空になっています。
Settings.ACTION_LOCATION_SOURCE_SETTINGS
Settings.ACTION_WIRELESS_SETTINGS
「ネットワークとインターネット」が起動します。
WiFi関係の設定がある画面ということですね。
Settings.ACTION_AIRPLANE_MODE_SETTINGS
「ネットワークとインターネット」が起動します。
機内モードの設定がある画面ということですね。
Settings.ACTION_VOICE_CONTROL_AIRPLANE_MODE
VoiceInteractionSession#startVoiceActivity
を使って呼び出す必要があります。
音声操作アプリ(VIA)から呼び出すものとのことですが、このアプリが無いため検証できず。
Settings.ACTION_ACCESSIBILITY_SETTINGS
Settings.ACTION_USAGE_ACCESS_SETTINGS
Settings.ACTION_SECURITY_SETTINGS
Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES
Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM
Settings.ACTION_REQUEST_MANAGE_MEDIA
Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS
「デフォルトで開く」が起動します。
アプリを指定するためpackage:
スキームでアプリのパッケージを指定する必要があります。
Settings.ACTION_PRIVACY_SETTINGS
Settings.ACTION_VPN_SETTINGS
Settings.ACTION_WIFI_SETTINGS
Settings.ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS
Settings.ACTION_WIFI_IP_SETTINGS
Settings.ACTION_PROCESS_WIFI_EASY_CONNECT_URI
Wi-Fi Easy Connect プロトコル(Device Provisioning Protocol、DPP)に対応している端末で、その画面を呼び出すとのことですが、対応端末を見つけられず。
Settings.ACTION_DATA_USAGE_SETTINGS
Settings.ACTION_BLUETOOTH_SETTINGS
Settings.ACTION_APP_SEARCH_SETTINGS
「設定を検索」が起動します。設定アプリの検索窓をタップした後の画面ですね。
Settings.ACTION_BIOMETRIC_ENROLL
Settings.ACTION_CAST_SETTINGS
Settings.ACTION_DATE_SETTINGS
Settings.ACTION_SOUND_SETTINGS
Settings.ACTION_DISPLAY_SETTINGS
Settings.ACTION_AUTO_ROTATE_SETTINGS
Settings.ACTION_NIGHT_DISPLAY_SETTINGS
「夜間モード」が起動します。対応する画面がない場合もあるとのこと。
AVDでは対応する画面がありませんでした。「読書モード」など端末により独自の設定画面になっている場合があるようです。
Settings.ACTION_LOCALE_SETTINGS
Settings.ACTION_APP_LOCALE_SETTINGS
「アプリの言語」が起動します。
アプリを指定するためpackage:
スキームでアプリのパッケージを指定する必要があります。
また、アプリ内ロケールに対応していないアプリの場合は対応する画面がないため、アプリに戻ってきます。
Settings.ACTION_REGIONAL_PREFERENCES_SETTINGS
Settings.ACTION_VOICE_INPUT_SETTINGS
Settings.ACTION_INPUT_METHOD_SETTINGS
Settings.ACTION_INPUT_METHOD_SUBTYPE_SETTINGS
Settings.ACTION_USER_DICTIONARY_SETTINGS
Settings.ACTION_HARD_KEYBOARD_SETTINGS
Settings.ACTION_APPLICATION_SETTINGS
Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS
「開発者向けオプション」が起動します。事前に開発者向けオプションを有効化しておく必要があります。
Settings.ACTION_QUICK_LAUNCH_SETTINGS
クイック起動ショートカットの設定画面が起動するそうです。対応する画面がない場合もあるとのことで、手持ちの端末で起動するものはありませんでした。
Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS
Settings.ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS
Settings.ACTION_MANAGE_ALL_SIM_PROFILES_SETTINGS
Settings.ACTION_MANAGE_OVERLAY_PERMISSION
「他のアプリの上に重ねて表示」が起動します。
Android 10まではアプリを指定できていましたが、Android 11からアプリリストまでしか表示できなくなりました。
非常に強いパーミッションなので、どのアプリに許可するかを改めてユーザーに認識してもらいなさいということのようですね。
Settings.ACTION_MANAGE_WRITE_SETTINGS
Settings.ACTION_APP_USAGE_SETTINGS
「」が起動します。
Settings.ACTION_APPLICATION_DETAILS_SETTINGS
「アプリ情報」が起動します。
アプリを指定するためpackage:
スキームでアプリのパッケージを指定する必要があります。
Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS
バッテリー最適化の画面が起動するらしいですが、手持ちの端末では ActivityNotFoundException
が発生しました。
Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
「アプリにバックグラウンドでの常時実行を許可しますか?」が起動します。
アプリを指定するためpackage:
スキームでアプリのパッケージを指定する必要があります。
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS
「モバイルデータとWi-Fi」が起動します。
アプリを指定するためpackage:
スキームでアプリのパッケージを指定する必要があります。
Settings.ACTION_SYNC_SETTINGS
Settings.ACTION_ADD_ACCOUNT
Settings.ACTION_NETWORK_OPERATOR_SETTINGS
SIMの設定が起動します。
対象のSIMはSettings.EXTRA_SUB_ID
で指定することができます。指定しなければデフォルトのSIMが選択されるみたいです。
Settings.ACTION_DATA_ROAMING_SETTINGS
SIMの設定が起動します。ローミング設定がここにあるためですね。
Settings.ACTION_INTERNAL_STORAGE_SETTINGS
Settings.ACTION_MEMORY_CARD_SETTINGS
「ストレージ」が起動します。
SDカードスロットを搭載した端末ならSDカードの設定画面が開くのかと思いましたが、試した端末ではやはり「ストレージ」でした
Settings.ACTION_SEARCH_SETTINGS
Settings.ACTION_DEVICE_INFO_SETTINGS
「デバイス情報」が起動します。
AVDなの「エミュレートされたデバイスについて」になっています。
Settings.ACTION_NFC_SETTINGS
Settings.ACTION_NFCSHARING_SETTINGS
Androidビームの画面が開くらしいですが、手持ちの端末では画面が開くものはありませんでした。
Settings.ACTION_NFC_PAYMENT_SETTINGS
「NFC」が起動します。
非接触型決済がある画面のようです。
Settings.ACTION_DREAM_SETTINGS
Settings.ACTION_NOTIFICATION_ASSISTANT_SETTINGS
Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS
Settings.ACTION_NOTIFICATION_LISTENER_DETAIL_SETTINGS
「デバイスとアプリの通知」の詳細画面が起動するようです。Settings.EXTRA_NOTIFICATION_LISTENER_COMPONENT_NAME
で対象のComponentNameを指定します。
NotificationListenerServiceを実装したアプリがないため検証できず。
Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS
Settings.ACTION_CONDITION_PROVIDER_SETTINGS
Settings.ACTION_CAPTIONING_SETTINGS
Settings.ACTION_PRINT_SETTINGS
Settings.ACTION_ZEN_MODE_PRIORITY_SETTINGS
Settings.ACTION_VOICE_CONTROL_DO_NOT_DISTURB_MODE
VoiceInteractionSession#startVoiceActivity
を使って呼び出す必要があります。
音声操作アプリ(VIA)から呼び出すものとのことですが、このアプリが無いため検証できず。
Settings.ACTION_SHOW_REGULATORY_INFO
「規制ラベル」が起動します。
AVDでは何も表示されませんでした。
Settings.ACTION_BATTERY_SAVER_SETTINGS
Settings.ACTION_VOICE_CONTROL_BATTERY_SAVER_MODE
VoiceInteractionSession#startVoiceActivity
を使って呼び出す必要があります。
音声操作アプリ(VIA)から呼び出すものとのことですが、このアプリが無いため検証できず。
Settings.ACTION_HOME_SETTINGS
Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS
Settings.ACTION_ALL_APPS_NOTIFICATION_SETTINGS
Settings.ACTION_APP_NOTIFICATION_SETTINGS
アプリの通知設定が起動します。
アプリを指定するためSettings.EXTRA_APP_PACKAGE
にアプリのパッケージを格納する必要があります。
package:
スキームではないので注意です。
Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS
通知チャンネルの設定が起動します。
アプリを指定するためSettings.EXTRA_APP_PACKAGE
にアプリのパッケージを格納する必要があります。
package:
スキームではないので注意です。
また、対象の通知チャンネルを指定するため、Settings.EXTRA_CHANNEL_ID
でチャンネルIDを指定する必要があります。
Settings.ACTION_APP_NOTIFICATION_BUBBLE_SETTINGS
「バブル」が起動します。
アプリを指定するためSettings.EXTRA_APP_PACKAGE
にアプリのパッケージを格納する必要があります。
package:
スキームではないので注意です。
Settings.ACTION_MANAGE_SUPERVISOR_RESTRICTED_SETTING
監督者によって制限されている設定を呼び出す都のことですが手持ちの端末では表示できませんでした。
Settings.ACTION_VR_LISTENER_SETTINGS
Settings.ACTION_WEBVIEW_SETTINGS
Settings.ACTION_SHOW_WORK_POLICY_INFO
Settings.ACTION_REQUEST_SET_AUTOFILL_SERVICE
Settings.ACTION_QUICK_ACCESS_WALLET_SETTINGS
クイックアクセスウォレットの設定画面が起動するとのことですが、手持ちの端末では起動するものはありませんでした。