본문 바로가기

[Android] 앱 캐시 제거(Webview 등) 오랜만에 글쓰네요.. 프로젝트가 안정화 단계에 접어들다보니 포스팅할만한 내용이 없었네요. 하이브리드 앱을 제작하다보면 앱캐시로 인해 변경된 화면이 표시가 안되는 경우가 종종 있었는데요. 앱캐시를 확실하게 날릴 수 있는 코드입니다. /** * 앱 캐시를 가차없이 지운다. */ public static void clearApplicationCache(Context context, File file) { File dir = null; if (file == null) { dir = context.getCacheDir(); } else { dir = file; } if (dir == null) return; File[] children = dir.listFiles(); try { for (int i = 0; i .. 더보기
[Android] Notification에 큰 이미지 적용하기 최근에 많은 앱들이 젤리빈(Android 4.1) 버전에서 추가된 BicPictureStyle을 이용하여 노티바에 큰 이미지를 보여주고 있다. 두손가락을 이용해 위로 드래그 하게 되면 접히고, 아래로 드래그 하면 큰이미지가 보이면서 열리게 된다. 즉..접혔을때의 컨텐츠와 열렸을때 서로 다른 컨텐츠를 지정할 수 있다. 필자는 다양한 버전을 지원하기 위해 v4 support library를 사용하였으며 해당 값들의 세팅은 임의로 지정하였다. /** * 먼저 NotificationCompat Builder를 선언한다. * Builder의 경우 접혔을 때 노티바에 표시할 컨텐츠를 설정한다. */ NotificationCompat.Builder builder = new NotificationCompat.Build.. 더보기
[Android] drawable 리소스를 비트맵으로 변환. drawable resource to bitmap 바꿀때마다 소스를 찾아봐서 글남기네요.. 정말 간단한건데 자바스크립트랑 안드로이드랑 왔다갔다하니....헷갈림.. //샘플 소스 Bitmap bigPictureBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.i_hero); 더보기
안드로이드 용 크롬 웹 디버깅. Web debuging on Android. 예전에는 아래와 같은 방법으로 불편(?)하게 디버깅을 했었는데 킷캣 이상버전부터는 앱에 내장되어 있는 웹뷰에 대해서도 디버깅을 지원한다.(앱에 약간의 코딩을 해준다면...) 먼저 킷캣 이하버전에선 아래의 코드가 동작을 하지 않기 때문에 킷캣이상에서만 웹뷰에 대한 디버깅을 활성화 시켜준다. 웹뷰가 초기화 되기 전에 해당 부분이 실행되도록 해주면 된다. 보통 2번 코드를 많이 사용하는데, 배포버전에 디버깅이 가능하도록 설정되어 있을 경우 코드 인젝션을 통해 앱 보안을 위협할 수도 있기 때문이다. 그래서 2번을 추천한다. //1.킷캣 이상인 경우 무조건 웹뷰 디버깅이 가능하도록. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWeb.. 더보기
[Javascript] Iframe document 얻기. query에는 css 선택자를 넣어주면된다 ex) getFrameDocuement("#frame1"); function getFrameDocument( query ) { var frame = document.querySelector( query ); if (frame == null) return; var frameDocument = frame.contentWindow || frame.contentDocument; return frameDocument; } 더보기
[Android] 사진 저장 후 갤러리에 보이지 않는 경우-MediaScanner 개별 파일로 intent를 통해 리소스 디비 업데이트 이동~~(Click) 이번에는 폴더 전체 스캔, MediaScanner를 통해 업데이트를 해보겠습니다. 이부분도 간단하게 구현가능한데, 범용성을 위해 클래스로 뺐습니다^^; package com.jhlibrary.util; import android.content.Context; import android.media.MediaScannerConnection; import android.media.MediaScannerConnection.MediaScannerConnectionClient; import android.net.Uri; public class MediaScanner { private Context mContext; private String.. 더보기
[Android] 사진 저장 후 갤러리에 보이지 않는 경우. 안드로이드에서 현재 화면을 저장하는 경우, 또는 이미지를 저장하였을 때 갤러리에서 보이지 않는 경우가 있다. 안드로이드에서는 사용자가 가지고 있는 리소스를 디비화 해서 저장하고 있는데, 해당 파일의 정보 및 썸네일까지 담고 있다. 그래서 갤러리 같은 경우, 이미지 파일을 보여주긴 하지만 상당히 빠른 속도로 화면을 볼수 있는 이유 중의 하나이다. 아무튼..갤러리에 보여주기 위해서는 디비에 업데이트 해주는 인텐트가 필요하다. 아니면 별도의 스캐너를 사용해도되고.... 간단하게 인텐트를 통해 해당 파일을 업데이트하는 방법이다. // context.sendBroadcast(new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)) ); // c.. 더보기
안드로이드용 대출금계산기( 원금균등상환, 원리금균등상환 ) 안드로이드용 대출금계산기 앱을 출시했습니다.~ 이것도 마찬가지로....제가 필요해서 만들었습니다 ㅎㅎㅎ 정말이지...금융 계산은 어렵군요.. 필요하신분들 받아가시길 바랍니다. 아래 클릭! Download Page(Click) 더보기
안드로이드용 자 앱. Ruler Application 안드로이드용 자(Ruler) 앱을 출시했습니다.~ 앱 명은 "자가필요할땐" 이구요... 사무실을 벗어나 있을경우, 데이트하고 있을 경우!! 가끔 자가 필요할때가 있더라구요.. 그래서 정말 자 기능만 넣었습니다. 필요하신분들 받아가시길 바랍니다. 아래 클릭! Download Page(Click) 더보기
[Android, Hybrid] 앱에서 파일 다운로드 구현. URL File Download. 웹브라우저를 이용해서 파일을 다운로드 받을 경우, 다운로드매니저를 통해 받게 된다.(진저브레드 이상) 앱에서 다운로드 매니저를 사용하여 파일 다운로드 받는 방법을 쓰고자 한다. 앱이나 하이브리드나 다운로드 하는 방법은 동일하다. 다운로드 매소드, 그리고 다운로드매니저로부터 액션을 받을 수 있는 리시버를 만드면 끝.! Download Method private DownloadManager mDownloadManager; //다운로드 매니저. private int mDownloadQueueId; //다운로드 큐 아이디.. private String mFileName ; //파일다운로드 완료후...파일을 열기 위해 저장된 위치를 입력해둔다. /** * @param url : 파일을 다운로드할 url. */ p.. 더보기