전체 글
-
외부 앱 접속 막기Android 2025. 3. 3. 20:44
안녕하세요~ 오늘은 외부 앱의 접속을 차단하는 방법에 대해서 얘기해보고자 합니다 🙂 외부 앱의 접속을 막으려면 어떤게 필요할까요? 접근성 권한 : 다른 앱의 접속을 차단할 수 있는 권한을 사용자로부터 받아야 함서비스 : 차단할 앱을 백그라운드에서 감지해야함브로드캐스트 리시버 : 안드로이드 컴포넌트간의 데이터 전달 대표적으로 3개의 구성요소가 필요한데 하나씩 짚어보겠습니다 :) 접근성 권한 받아오기다른 앱의 접속을 차단할 수 있는 권한을 얻기 위해서는 사용자로부터 접근성 권한을 받아와야 합니다.val isAccessibilityPermitted = checkAccessibilityPermissions()if(!isAccessibilityPermitted) { AlertDialog.Builder(th..
-
핸드폰에 설치된 앱 불러오기Android 2025. 2. 25. 19:28
안녕하세요~ 오늘은 프로젝트를 진행하면서 알게된 핸드폰에 설치된 앱을 불러오는 방법에 대해 적어보려고 합니다.🙂 코드를 작성하는 적절한 위치만약 프로젝트가 단일 액티비티 구조라면, 설치 앱 목록을 불러오는 코드는 프래그먼트보다는 액티비티의 onCreate 생명주기에 작성하는 게 좋습니다. 왜냐하면, 프래그먼트는 생명주기가 생성 및 소멸될 수 있지만, 액티비티의 생명주기상 onCreate는 앱을 실행한 후 한 번만 호출되기 때문입니다. 변수 설정private lateinit var totalApps: MutableListprivate lateinit var requiredApps: List totalApps 변수는 핸드폰에 설치된 모든 앱 목록을 저장할 변수이고, requiredApps는 시스템 앱을 제..
-
Image & Network ImageCompose 2024. 12. 22. 17:10
오늘은 jetpack compose 에서 내부 저장소에 있는 이미지를 불러오는 방법과 외부 서버로부터 이미지를 불러오는 방법에 대해 다뤄볼려고 합니다. 🙂 Image (정적 이미지)Image 같은 경우에는 안드로이드 프로젝트 내 폴더(drawable) 에 있는 이미지를 불러올 때 사용합니다.총 3가지 방법으로 이미지를 불러올 수 있습니다.painter가장 많이 사용하는 방법입니다. drawable 폴더 내에 있는 이미지를 불러올 때 사용합니다. 코드는 다음과 같이 작성합니다.Image( painter = painterResource(id = R.drawable.image), contentDescription = "이미지에 대한 설명" // contentDescription = null)..
-
Dialog & Custom DialogCompose 2024. 10. 17. 13:02
오늘은 jetpack compose 를 이용하여 다이얼로그 만드는 방법을 알아보고자 한다🙂첫번째로, 기본 다이얼로그이다. 기본 다이얼로그는 AlertDialog 로 만들어야 한다. 기본 다이얼로그1. AlertDialog 의 기본 구조 및 정의다이얼로그를 만들려면 AlertDialog 를 사용해야 하는데, 아래와 같은 구조로 코드를 작성하면 된다. AlertDialog( onDismissRequest = {}, confirmButton = {}, dismissButton = {}, title = {}, text = {}) 여기서 AlertDialog 정의로 들어가보면 아래와 같다.@Composablefun AlertDialog( onDissmissRequest: () -..
-
액티비티간 데이터 전달 - startActivityForResultAndroid 2024. 10. 10. 16:05
이전 화면으로 되돌아올 때 사후처리가 필요한 경우가 있다.그때 필요한 방법은 아래 두가지가 있다.startActivityForResult (전통적인 방법) → deprecated 됨ActivityResultLauncher (최근 권장하는 방법)오늘은 startActivityForResult 의 사용법을 알아보려한다. 해당 방식은 안드로이드 버전1~버전12 까지는 잘 사용됐지만, 안드로이드 11 버전이 나올쯤부터 androidx의 ActivityResultLauncher 가 권장되기 시작했다. 권장되는 방식인 ActivityResultLauncher 을 바로 사용하는 것도 괜찮지만, 기존 startActivityForResult 를 먼저 공부해보고 어떤 점이 불편해서 ActivityResultLaunche..
-
안드로이드 기본 앱 연동하기 - 지도 앱, 전화 앱Android 2024. 10. 3. 09:58
지도 앱 연동하기앱이 만약에 위도와 경도 값을 가지고 있다면 지도 앱을 연동하여 위치를 보여줄 수 있다. 이때도 지도 앱의 액티비티를 실행하기 위해서는 인텐트를 사용하면 된다.val intent = Intent( Intent.ACTION_VIEW, // 액션 문자열 Uri.parse("geo:37.5662952, 126.9779451") // 데이터 정보)startActivity(intent) 두번째 파라미터인 데이터 정보는 URL 로 반드시 geo: 로 시작해야 하고 이어서 위도와 경도를 지정하면 된다.이렇게 하면 해당 위도와 경도에 해당하는 특정 위치를 지도에서 보이게 할 수 있다.전화 앱 연동하기먼저 전화 앱과 연동해 전화를 걸려면 메니페스트에서 퍼미션을 설정해야 한다. 이후 인텐트를 ..
-
안드로이드 기본 앱 연동하기 - 주소록 앱Android 2024. 9. 26. 16:56
주소록 앱 연동하기먼저 주소록 앱 사용에 대한 퍼미션을 메니페스트에서 설정해줘야 한다. 이후, 주소록 앱 화면을 띄울려면 아래와 같은 코드를 작성하면 된다.// 액션 문자열: ACTION_PICK// 데이터: ContactsContract.CommonDataKinds.Phone.CONTENT_URIval intent = Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI)requestContactsLauncher.launch(intent) 주소록 목록 화면은 액티비티이기 때문에 인텐트를 이용해 실행해야 한다.데이터 정보에 들어가는 Uri 객체는 상수로, Uri.parse() 함수로 직접 지정해도 되지만, 다음과 같은..
-
안드로이드 기본 앱 연동하기 - 카메라 앱Android 2024. 9. 19. 15:53
카메라 앱을 연동하여 사진을 촬영하고 그 결과를 돌려받는 방법은 2가지가 있다.1. 사진 데이터 가져오기카메라 앱으로 사진을 촬영한 후 파일로 저장하지 않고 데이터만 넘겨주는 방식이다. 사진을 파일로 저장하지 않으므로 쉽게 구현할 수 있지만 넘어오는 사진 데이터의 크기가 작다는 단점이 있다. 암시적 인텐트로 카메라 앱의 사진 촬영 액티비티를 실행한다.val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)requestCameraThumbnailLauncher.launch(intent) 액션 문자열을 MediaStore.ACTION_IMAGE_CAPTURE 로 지정하여 인텐트를 시스템에 전달하면 카메라 앱이 실행된다. 카메라 앱에서 넘어온 사진 데이터는 Activity..