Android
-
[UI] BottomNavigationViewAndroid/UI 2021. 11. 10. 15:33
BottomNavigationView의 아이템을 설정하려면 메뉴 리소스 인플레이션을 통해 사용해야한다. app:menu속성을 통해 메뉴 리소스 인플레이션 BottomNavigationView 클래스 BottomNavigationView의 리스터 메서드들이 deprecated되어 Super 클래스인 NavigationBarView 클래스의 리스너를 사용해야한다. NavigationBarView 클래스 메뉴 관련 메뉴 리소스 인플레이션 ( int 메뉴 리소스 ) app:menu를 설정하지 않았으면 inflateMenu를 통해 코드상에서 NavigationBarView에 사용될 메뉴를 인플레이션한다. (Existing items in the menu will not be modified or removed.)..
-
[Storage] 안드로이드 저장소 정리Android/Storage 2021. 11. 3. 03:01
목차 이글은 안드로이드 11 변경사항에 대해 정리하지 않았습니다. 1. 외부저장소 vs 내부저장소 vs 내장메모리 2. 앱 개별파일과 앱 개별공간, 외부저장소 공유공간이란? 3. 내부저장소 앱 개별공간, 외부저장소 앱 개별공간, 외부저장소 공유공간 위치 File Explorer로 확인 (feat. /sdcard, /self, /primary, /emulated, /mnt ) 4. Legacy Storage vs Scope Storage( 내부저장소 앱 개별공간, 외부저장소 앱 개별공간 ) + 내부저장소에 앱 개별파일 쓰기 예제 5. 외부저장소 볼륨이 여러개일 경우 -> 외부저장소 앱 개별공간은 여러개가 존재가능 + Environment의 외부저장소 볼륨과 관련된 메서드( +Context, ContextC..
-
[Permission] 외부저장소 WRITE 획득하면 READ도 같이 획득Android/Permission 2021. 10. 29. 18:56
안드로이드 저장소 정리 포스팅 2021.11.03 - [Android/Storage] - [Android] 안드로이드 저장소 정리 WRITE권한을 얻으면 READ도 자동으로 얻는다고 되있는데 Scoped Storage에는 변경사항이 있어서 정확히 어떻게 동작하는지 모르겠다. 일단 안드로이드 9에서 테스트해봤다. 앱을 설치한 상태에서 READ만 요청한 후 사용자가 승인하면 READ 허용된 상태, WRITE 거부된 상태로 나오고 WRITE만 요청한 후 사용자가 승인하면 READ, WRITE 모두 허용된 상태로 나오긴 한다. READ만 요청해서 사용자가 승인했을 때 WRITE는 거부된 상태로 남는데 이때 WRITE를 요청하면 다이얼로그는 뜨지 않고 자동으로 WRITE가 획득된다.
-
[Storage] Legacy Storage 외부저장소 다른 앱 개별공간에 저장 가능?Android/Storage 2021. 10. 29. 18:04
안드로이드 저장소 정리 포스팅 [Android/Storage] - [Android] 안드로이드 저장소 정리 Android 9이하의 Legacy Storage에서는(낮은버전 제외) 가능하지만, Android 10에서 도입된 Scoped Storage에서는 외부저장소 앱 개별공간이 내부저장소 앱 개별공간처럼 샌드박스 형식으로 바뀌어서 불가능 Legacy Storage에서는 적절한 권한만 있으면 다른 앱의 외부저장소 앱 개별공간의 파일에 접근할 수 있다. 이렇게 다른 앱에서 권한만 있으면 접근이 가능하지만 이 공간의 실제적 의미는 앱 개별으로만 사용할 파일을 저장하는 곳이다. 테스트 파란색 앱에서 testapp의 외부저장소 앱 개별공간에 빈파일을 쓸 수 있는지 테스트 testapp에서 하드코딩된 절대경로를 넣..
-
[Storage] Legacy Storage 외부저장소 공유공간에 파일쓰기Android/Storage 2021. 10. 29. 16:59
안드로이드 저장소 정리 포스팅 [Android/Storage] - [Android] 안드로이드 저장소 정리 Android 9이하에서 공유저장공간에 파일을 write해보고 권한이 없을 때 파일을 write하면 어떤 결과가 나타나는지 확인해본다. 필요한 내용만 정리하였기 때문에 권한이 획득, 거부 상태인지 체크하고 권한을 얻어오는 코드는 넣지 않았다. 단순히 앱 권한 설정으로 가서 저장공간 권한 체크박스만 설정/해제하자 권한 처리는 아래의 포스팅을 참고 [Android/Permission] - [Android] 권한 체크, 획득 [Android/Permission] - [Android] 전반적인 권한 처리 로직 Android 9이하에서는 WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_S..
-
[Storage] 외부저장소 볼륨 BroadcastReceiverAndroid/Storage 2021. 10. 26. 16:02
onReceive의 받은 인텐트에서 getData로 Uri를 뽑아 어떤 볼륨이 변경되었는지 체크가능 체크 getAction으로 볼륨이 어떻게 변경되었는지 체크가능 태그 내부에 implicit 브로드 캐스트 리시버 정의 확인하고 싶은 Action만 정의하였다. 이외에도 여러 Action이 있다. Intent의 data필드를 file로 꼭 지정해줘야 한다. BroadcastReceiver클래스를 상속한 클래스 생성 후 onReceive() 오버라이딩 class SdReceiver : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { log("SD카드 테스트- onReceive()") if (intent != n..
-
[Permission] 전반적인 권한 처리 로직Android/Permission 2021. 10. 22. 15:59
이전 포스팅에서는 사용자가 권한 허용, 거부,다시 묻지않음 거부시 shouldShowRequestPermissionRationale의 Boolean값이 어떻게 변하는지 안드로이드 버전에 따라 다이얼로그가 어떤식으로 출력되는지 등등에 대해서 알아보았다. 2021.10.21 - [Android/Permission] - [Android] 권한 체크, 획득 이번 포스팅에서는 다시 묻지 않음 거부시 사용자를 앱의 설정 액티비티로 유도하는 코드와 실제적으로 권한 처리하는 코드를 만들어본다. 안드로이드 11 테스트 단순 테스트 용도로 사용될 권한 외부저장소 쓰기 ---매니페스트 ---레이아웃 버튼( 전반적인 권한 처리) ---액티비티 로그와 토스트 코드가 복잡해져 권한 체크, 권한 설명필요, 권한 요청 메서드로 나눴..
-
[Intent] 설정 앱 관련 인텐트 Activity Action 몇가지Android/Intent 2021. 10. 22. 00:04
권한 관련 앱 세부정보 액티비티로 보내는 것을 공부하다 몇가지 대충 써봤다. android.provider.Settings 클래스 https://developer.android.com/reference/android/provider/Setting Activity Action관련 상수( 액션마다 수행할 수 없는 컴포넌트(액티비티)가 있을 수 있음 ) ACTION_APPLICATION_SETTINGS ( 설정-> 어플리케이션(해당) ) 인텐트 설정 필요없음 설정-> 애플리케이션설정(해당) ACTION_APPLICATION_DETAILS_SETTINGS ( 설정-> 어플리케이션 -> 특정 어플리케이션 선택(해당) ) Input- 인텐트 data uri를 "package:com.패키지명"으로 설정 overrid..