목록FrontEnd/Android (63)
만족
하단의 탭 레이아웃의 탭들이 가로를 꽉 채우지 않는 문제가 발견되었다. 재미있는 점은 스마트폰에서는 정상적으로 표시되지만, 태블릿에서만 이렇게 쪼그라든다는 점이다. 해결법 기존의 TabLayout에 몇 가지 속성만 추가하면 된다. 이런식으로 tabGravity, tabMode, tabMaxWidth 속성을 추가해준다. 이제 태블릿에서도 정상적으로 표시된다.
해결법 1 AndroidManifest.xml 에 INTERNET 권한이 선언되었는지 확인한다. 인터넷 권한이 없을 경우 캐시로만 페이지를 로드하게 되는데, 이렇게 되면 방문한 적이 없는(캐시가 없는)페이지에서는 전부 ERR_CACHE_MISS가 발생한다. 해결법 2 binding.apply { webview.webViewClient= WebViewClient() webview.settings.javaScriptEnabled= true webview.settings.builtInZoomControls= true webview.settings.defaultTextEncodingName= "utf-8" //캐시 모드 변경 webview.settings.cacheMode= WebSettings.LOAD_CAC..
Notification을 생성하는 단계 1. Notification Channel 생성 2. Notification Builder로 Notification 생성 3. Notification Service에 Notification Channel과 Notification 등록 일단 전체 코드부터 보고, 하나씩 설명하겠다. class NotificationActivity: AppCompatActivity(){ //... fun makeNotification() { //create notification Channel val nId = "MyChannel" val nName = "TimeCheckChannel" val nChannel = NotificationChannel(nId, nName, Notificat..
developer.android.com/training/permissions/requesting?hl=ko 앱 권한 요청 | Android 개발자 | Android Developers 모든 Android 앱은 액세스가 제한된 샌드박스에서 실행됩니다. 앱이 자체 샌드박스 밖에 있는 리소스나 정보를 사용해야 하는 경우 권한을 선언하고 이 액세스를 제공하는 권한 요청을 설정할 수 developer.android.com 안드로이드에는 각 동작마다 권한이 존재한다. 예를 들어, 앱에서 카메라를 사용하는 것도 '카메라 사용 권한'이 필요하고, 내장 메모리를 사용하는 것도 '스토리지 접근 권한'이 필요하다. 단순 인터넷 사용 권한 같은 "사용자의 개인정보에 영향을 미치지 않는 권한들은 일반권한"으로 분류되어 mani..
현재 운영중인 게임 정보 앱에 관한 통계치이다. 안드로이드 플랫폼이며, 현재 실 사용 기기는 약 1.6만대이다. 릴리즈 당일 3.17.1 버전을 릴리즈한 당일인 3월 2일에는 업데이트율 5% 미만 릴리즈 후 1~4일 3월 3일 업데이트율 39%로 급격히 증가 4일 63%, 5일 74%로 4일차까지는 비교적 급격히 증가한다. 릴리즈 후 5일 3월 6일엔 업데이트율 77%로 이제 증가율이 완만해지기 시작한다 릴리즈 후 6일 3월 7일(6일차) 80% 달성 릴리즈 후 13일 3월 15일(13일차) 86% 달성 다음날에 사용률이 92%까지 치솟기는 했으나, 전날 너무 구버전의 경우 최신 버전이 아니면 사용 불가하게 막았기 때문이다. 정리해보면 릴리즈 후 4일차까지는 급격히 증가하나 (70%~80%) 이후 급격히..
이미 다른 RecyclerView에 사용된 LayoutManager를 사용하려 할 때 발생하는 문제다 해결법은 그냥 각각 만들어서 주면 된다
내 앱에서 갤러리 앱을 열고 선택한 사진을 내 앱에서 불러오는 기능을 구현한다. 파일 읽기 권한 추가 먼저 manifest.xml에 다음 권한을 추가하고, 마시멜로 이상의 Android 버전을 타게팅하는 경우 사용자에게 권한을 요청하여 받아낸다. 액티비티에서 갤러리 열기 우선 갤러리를 여는 코드부터 작성해 보자 public class SomeActivity extends FragmentActivity{ //... if(PermissionChecker.checkPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)){ //권한이 확인된 경우 갤러리 오픈 Intent i = new Intent(Intent.ACTION_PICK,android.provider..
앱을 개발하다 보면 디버그 모드에서만 활성화해야 하는 기능이 존재한다. 단적인 예로, 구글 애드몹의 경우 디버그 모드에서 광고를 초기화하는 행위가 누적되면 계정이 정지되기 때문에 디버그 모드에선 그것을 막아두어야 한다. 처음엔 노가다로 디버그 할 때는 주석처리 해두었다가 릴리즈 시 해당 주석을 해제하는 방법을 사용했지만, BuildConfig클래스를 안 뒤로는 손으로 하지 않는다. BuildConfig는 .BuildConfig 위치에 존재한다. 만약 내 applicationId가 com.example.www 라면 com.example.www.BuildConfig 위치에 있다. 해당 클래스로 버전 코드, 디버그 여부 등을 유용하게 쓰고 있었는데 간혹 릴리즈 모드에서도 DEBUG값이 false로 바뀌지 않는..