세팅 패널(Settings Pannel)은 3rd party 앱에서 직접 세팅의 UI를 패널로 띄우는 기능입니다. 패널로 띄우면 자신의 앱을 가리지 않기 때문에 불필요한 앱 전환이 필요없습니다. 안드로이드 공홈에서 소개하는 그림을 보면 어떤 부분에서 UX가 좋아지는지 느낄 수 있습니다.
위의 그림은 브라우저를 실행하려고 하지만 인터넷이 연결되지 않아 페이지를 띄우지 못하였습니다. 기존에 사용자는 Wifi를 띄우기 위해 세팅앱을 들어가거나, 상태바를 내려 Wifi를 켰어야 했습니다. 하지만 브라우저의
Get Connected
버튼을 누르면 Wifi에 대한 세팅패널이 나와 Wifi를 연결할 수 있습니다.
세팅 패널은 4개의 설정을 지원합니다.
- Internet 연결
- Wifi 연결
- NFC 설정
- Volume 설정
샘플 코드
세팅 패널을 띄우는 코드는 매우 간단합니다. 특정 액션으로 인텐트를 생성하고 startActivity로 실행해주면 됩니다.
val panelIntent = Intent(Settings.Panel.settings_panel_type)
startActivity(panelIntent)
위의 코드에서 settings_panel_type
은 다음 4개의 액션이 들어갈 수 있습니다.
- ACTIONINTERNETCONNECTIVITY : 인터넷 연결에 대한 설정을 보여줌
- ACTION_WIFI : WIFI 연결에 대한 설정을 보여줌
- ACTION_NFC : NFC에 대한 설정을 보여줌
- ACTION_VOLUME : Volume에 대한 설정을 보여줌
코드로 구현하면 다음과 같습니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btnInternet.setOnClickListener {
val panelIntent = Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY)
startActivity(panelIntent)
}
btnWifi.setOnClickListener {
val panelIntent = Intent(Settings.Panel.ACTION_WIFI)
startActivity(panelIntent)
}
btnNfc.setOnClickListener {
val panelIntent = Intent(Settings.Panel.ACTION_NFC)
startActivity(panelIntent)
}
btnVolume.setOnClickListener {
val panelIntent = Intent(Settings.Panel.ACTION_VOLUME)
startActivity(panelIntent)
}
}
}
ACTIONINTERNETCONNECTIVITY
인터넷 설정에 대한 세팅 패널 화면입니다.
ACTION_WIFI
WIFI 설정에 대한 세팅 패널 화면입니다.
ACTION_NFC
NFC 설정에 대한 세팅 패널 화면입니다.
ACTION_VOLUME
볼륨 설정에 대한 세팅 패널 화면입니다.
정리
현재 안드로이드 Q는 Preview만 공개되었습니다. 구글은 앞으로 AndoridX에도 세팅패널을 지원할 계획이고, Q이하의 디바이스에도 사용할 수 있게 됩니다.
이 글에서 사용하는 샘플 코드는 GitHub에 있습니다.
참고
Recommended Posts:
- Android - BuildConfig 정보 읽기 및 상수 추가
- Android 11 - 시스템 기본 카메라 정책
- Android 11 - Privacy 변경사항 요약
- Android11 - Storage(저장소) 정책 변경사항 정리
- Android11 - Package visibility 변경사항 소개
- Android - File-Based Encryption과 Direct Boot 이해하기
- 안드로이드 Q - Thermal API로 발열 상태 모니터링
- 안드로이드 Q - Background Activity 실행 제한 정책
- Android App Bundle로 Apk 크기를 더 작게 만들기
- 안드로이드 Q - Background Location 권한 제한 정책
- 안드로이드 Q - 새로운 저장소 정책, Scoped Storage 알아보기
- 안드로이드 Q - Mainline, APEX에 대해서 알아보기
- 안드로이드 - JobScheduler로 백그라운드 작업 실행하는 방법