안드로이드 개발 팁 #80 - 액티비티에서 설정 화면 실행 방법 (1)

액티비티에서 설정 화면 실행 방법

No. 80
2024. 07. 17 (수) | Written by @dorian-mobileapp

시작하며...

지금은 동료들이 리뉴얼 중인 메인 앱. 리뉴얼 이전에 개발했을 때였습니다. 권한 설정 화면을 추가 개발했었구요. 기획 문서에는 없었지만, 사용자가 나중에 권한을 쉽게 변경할 수 있도록 마이페이지에서 권한 설정 화면으로 연결해주는 메뉴 항목을 추가했었습니다. 그 때 설정 화면으로 이동하는 방법을 찾아 보았구요. 나중에 재활용하고자 포스트로 정리해 둡니다.


액티비티에서 설정 화면 실행 방법

(1) android.provider.Settings 클래스에서 제공하는 액션 값을 갖는 Intent 객체를 생성합니다.

val intent = Intent(android.provider.Settings.ACTION_SETTINGS)

액션 값은 Settings 클래스에서 제공하는 ACTION_... 상수들 중 하나를 선택하면 됩니다. 일부 액션 값의 경우에는 추가 파라메터 또는 추가 엑스트라 데이터가 필요할 수 있습니다.

(2) (1)에서 정의한 인텐트를 활용하여 설정 화면을 시작합니다.

activity.startActivity(intent)

설정 화면을 실행할 Activity 클래스의 확장 함수

fun Activity.startSettings() {
    val intent = Intent(android.provider.Settings.ACTION_SETTINGS)
    startActivity(intent)
}

App Info 화면을 실행할 Activity 클래스의 확장 함수

fun Activity.startAppInfo() {
    val intent = Intent(
        android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
        Uri.parse("package:${packageName}")
    )
    startActivity(intent)
}

알림 설정 화면을 실행할 Activity 클래스의 확장 함수

fun Activity.startAppNotifications() {
    val intent = Intent(android.provider.Settings.ACTION_APP_NOTIFICATION_SETTINGS)
    intent.putExtra(android.provider.Settings.EXTRA_APP_PACKAGE, packageName)
    startActivity(intent)
}

추가로...

만약 설정 화면에서 이전 화면으로 복귀시 후자에서 추가로 처리해야 할 게 있나요? (예: 이전 화면에서 알림 권한을 앱이 가지고 있는지 보여줘야 함) 그렇다면 startActivity 대신 startActivityForResult 메소드를 호출해야 합니다. 이에 대해서는 내일 정리해 보겠습니다.


참고 사이트


지난 안드로이드 개발 팁


Layout provided by Steemit Enhancer hommage by ayogom


Posted through the ECblog app (https://blog.etain.club)
Sort:  

안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.


안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @dorian-mobileapp님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!

Thank you, friend!
I'm @steem.history, who is steem witness.
Thank you for witnessvoting for me.
image.png
please click it!
image.png
(Go to https://steemit.com/~witnesses and type fbslo at the bottom of the page)

The weight is reduced because of the lack of Voting Power. If you vote for me as a witness, you can get my little vote.

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.05
TRX 0.33
JST 0.079
BTC 63789.74
ETH 1693.74
USDT 1.00
SBD 0.41