본문 바로가기

Android4

안드로이드 위젯 크기 결정 로직의 문제들 안드로이드는 파편화가 원래 심하지만, 위젯 크기는 특히 거지같다. 우선 위젯을 만들기 위해서 추가해야 하는 두가지는 appwidget-provider.xml 파일과 위젯 설정을 위한 클래스이다. xml에서는 - minWidth, minHeight는 위젯을 홈화면에 추가할 때 사용하는 값이다. 이 값으로 홈화면에서 몇개의 셀이 할당될지 결정된다. - minResizeWidth, minResizeHeight는 사용자가 위젯의 크기를 변경할 때 사용되는 값이다. 변경할 때 이 크기보다 작아지진 않아야 한다는 것을 런처에게 알려준다. 위젯 설정을 위한 클래스를 추가했다면, 위젯의 크기를 변경했을 때 AppWidgetProvider의 onAppWidgetOptionsChanged가 호출된다. public clas.. 2020. 2. 2.
안드로이드에서 다음 알람 시간 가져오기 val am = getActivity()!!.getSystemService(Context.ALARM_SERVICE) as AlarmManager val alarmClockInfo = am.nextAlarmClock // Added in API level 21 val cal = Calendar.getInstance() cal.timeInMillis = alarmClockInfo.triggerTime 안드로이드 기기에 등록된 다음 알람을 가져온다. 등록된 모든 알람 중에는 아니고, setAlarmClock으로 등록된 것 중 가져온다. 다른 앱에서 등록된 것도 가져온다. 내 앱에서 등록된 것만 가져오고 싶었는데... 다음에 더 알아보자. 2020. 1. 23.
AndroidManifest에 변수 사용 AndroidManifest 변수를 사용해 빌드 구성마다 다른 API 키, 패키지 명 혹은 특정 기능의 활성화 여부를 다르게 할 수 있다. 먼저 AndroidManifest에서 사용은 ${이름}로 표시를 하면 된다. 예를들어 firebase_crashlytics_collection_enabled를 개발 버전에서는 사용하지 않고, 스토어 배포 버전에서만 배포한다고 하는 경우, 그리고 ${이름}은 build.gradle 파일에서 각 빌드 구성마다 다르게 넣어주면 된다. ... defaultConfig { manifestPlaceholders = [ enableCrashReporting: "false" ] } productFlavors { prod { dimension 'type' addManifestPlac.. 2020. 1. 20.
안드로이드 에뮬레이터에서 호스트 PC로 접속 안드로이드 에뮬레이터로 개발할 때, 127.0.0.1은 에뮬레이터를 가리키므로 PC의 서버로 접속할 수 없다. 집이라면 사설 아이피로 연결하는 방법도 있지만 포트 포워딩 등의 작업을 해야 하고, 학교나 카페 같은 곳에서는 권한이 없어 이조차 할 수 없다. 이를 위해 에뮬레이터에는 특별한 IP가 있다. 그것은 바로... 10.0.2.2 에뮬레이터에서 10.0.2.2로 접속하면 호스트 PC의 127.0.0.1로 접속 할 수 있다. https://developer.android.com/studio/run/emulator-networking.html Android Emulator 네트워킹 설정 | Android Developers 에뮬레이터는 앱에 복잡한 모델링 및 테스트 환경을 설정하는 데 사용할 수 있는 다.. 2020. 1. 19.