프로그램/Android 56

HttpURLConnection Multipart 파일 업로드

일전에 올렸던 HttpURLConnection을 이용한 Multipart 파일업로드를 샘플입니다. 처음에 파일업로드 하다가 고생을 하였는데 가장 큰 이유는 데이터를 똑바로 넣어주니 404로 처리가 되어서 였습니다. 한참을 하다가 해결을 하였는데 문제는 바로 boundary라는 이녀석인데요. 찾아보지도 않았지만 느낀바로는 Http에서 이녀석까지가 데이터라고 하는 규약이지 않을까 싶네요. 결론적으로는 마지막에 “—boundary—”데이터를 넣어 줘야 한다는 것이죠. 다들 참고하시고 아래 샘플입니다. rivate void HttpMultiPart(final File file){ new AsyncTask(){ @Override protected JSONObject doInBackground(Void... voi..

HttpURLConnection Sample(Get, Post)

안드로이드 HttpURLConnection Sample입니다. 안드로이드 앱내에서 RestAPI를 이용하여 데이터를 받아오기 위한 통신입니다. 기본적인 Get/Post 샘플입니다. 1. GET 통신 private void HttpGet(){ new AsyncTask(){ @Override protected JSONObject doInBackground(Void... voids) { JSONObject result = null; try{ URL url = new URL("요청 URL"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestProperty("content-type", "app..

이미지사이즈 초과시 대처(Bitmap too large)

Bitmap too large to be uploaded into a texture (2316x4632, max=4096x4096) 안드로이드 앱 개발중 라이센스 문제를 위해 크기가 720x6153 사이즈의 이미지를 넣어줘야 하는 일이 생겨서 작업을 해야했습니다. 이미지가 커서 스크롤뷰를 이용하여 작업을 하면 간단하게 해결될거라고 생각하였는데 왠걸 최신 디바이스에서는 전혀 문제가 없지만 몇년 지난 디바이스에서는 위의 저 더러운 경고가 발생하면서 이미지가 나오지 않는 현상이 발견 되었습니다. 그리하여 구글링 결과 Manifest.xml에서 hardwareAccelerated 를 false로 값을 주면 정상적으로 작동합니다. 이런것으로 보아 default 값이 true 인듯 하네요....ㅠ 만약 hardwa..

안드로이드 Fabric 설치

안드로이드앱이 강제종료될때 대쉬보드로 보여주는 프로그램입니다. 앱을 배포하고 난뒤 사용자들이 앱이 죽는다고 글을 달았을 경우 문제가 직접 어디서 죽는지 답변을 달아서 조취하기가 번거롭기 때문에 Fabric을 사용하면 좋을거 같습니다. Fabric을 사용하기 위해서 일단 홈페이지를 방문합니다(홈페이지 바로가기) 홈페이지에서 GET FABRIC 을 클릭합니다. 버튼을 클릭하면 나오는 창에 값을 입력하여 주시면 등록한 이메일로 메일이 와있을겁니다. Confirm을 클릭하시면 이제 Fabric 홈페이지로 이동하여 아래와 같이 하시면 될거 같습니다. Fabric을 사용할 OS를 클릭하여 주시면 됩니다. 다음부터는 안드로이드 스튜디오에 설치하는 방법에 대한 설명이 나와있습니다. 스튜디오를 실행한뒤 Preferenc..

안드로이드 Url을 이용하여 Bitmap 다운로드

안드로이드 개발을 하다보면 가끔씩 Url을 이용하여 Bitmap을 ImageView에 넣어줘야 할일이 많습니다. 또는 API 통신을 하여 받은 ImageUrl을 가지고 있다가 다른곳에서 ImageView에 넣어줘야 할때도 있습니다. 그럴때 저는 이 ImageUrl을 이용하여 이미지를 Bitmap으로 다운받은 후 String형태로 전환하여 가지고 있다가 다른페이지에서 다시 String 형태를 Bitmap으로 전환하여 사용합니다. 사용하는 위치에 가서 통신을 이용하여 Bitmap을 가져오기엔 타이밍이 않맞거나 뭐 다른일이 생길까봐 보통 그렇게 합니다. HttpURLConnection conn = null; try { URL url = new URL(imageUrl); conn = (HttpURLConnect..

안드로이드 ViewPager[Tutorial Sample]

안드로이드 ViewPager Sample입니다. Fragment를 이용한 ViewPager가 아닌 보통 앱에서 보여주는 튜토리얼로 쓰기 위한 Sample입니다. 기본적인 ViewPager를 사용하기 위해서는 ViewPager에 adapter를 넣어줘야 합니다. 그리고 PagerAdapter를 상속받은 클래스를 넣어주시면 될거같습니다. PagerAdapter를 상속받는 클래스를 만드실 경우 오버라이드 메소드 설명입니다. getCount() : PagerAdapter에서 관리할 갯수를 반환 instantiateItem() : ViewPager에서 사용할 뷰객체 생성 및 등록 destroyItem() : View 객체를 삭제 isViewFromObject() : 생성한 객체를 이용할 것인지 여부를 반환 1. ..

안드로이드 SDK 번호와 버전 정리

그때그때 항상 검색해서 찾아서 보는게 싫어서 직접 작성해 둡니다. 정보는 아래 링크에서 가져옵니다. http://developer.xamarin.com/guides/android/application_fundamentals/understanding_android_api_levels/ Released Android Version API Level Name August 2017 Android 8.0 26 Oreo December 2016 Android 7.1 25 Nougat August 2016 Android 7.0 24 Nougat August 2015 Android 6.0 23 Marshmallow March 2015 Android 5.1 22 Lollipop November 2014 Android 5..

안드로이드 Mixed Content The page at was loaded over HTTPS

안드로이드 Webview를 이용하다 보면 Mixed Content: The page at ‘Https주소’ was loaded over HTTPS 란 로그를 볼수 있습니다. 이렇게 되었을경우 대략적으로 이미지가 Http일 경우가 많은데 이미지가 보이지 않거나 깨져 보일수가 있습니다. 이 경고 메세지는 Https 사이트에서 Http를 사용하여 발생하는 이슈로 보입니다. 이럴때는 웹뷰에 아래와 같은 코드를 넣어주시면 되겠습니다. webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

안드로이드 라이브러리 등록(2.aar 파일 프로젝트 등록)

이번에는 이전 글에서 만들었던 aar파일을 프로젝트 등록 및 사용을 해보도록 하겠습니다. aar파일을 프로젝트에 등록하는 방법은 굳이 만들었던 파일을 프로젝트 안으로 옮기지 않아도 가능합니다. 안드로이드 스튜디오 메뉴에서 File > Project structure 클릭 후 뜨는 창 > 좌측상단 +버튼 을 클릭하여 Import .JAR/.AAR Package를 클릭하여 aar파일을 등록하여 주셔야 합니다. aar파일을 등록한 후 gradle에서 자신의 aar파일을 입력하여 주시면 되겠습니다. compile project(':라이브러리 파일명') //확장자 필요없음 자 이렇게 까지 하였다면 정상적으로 등록이 되었습니다. 이제 직접 만들었던 함수가 있는지 확인해 보시면 될것입니다. 저는 정상적으로 잘 나옵니다.

안드로이드 라이브러리 만들기(1.aar 파일 생성)

Android Studio를 이용하여 라이브러리 파일(aar 파일)을 생성하고 사용하여 봅시다. 우선 샘플인 코드를 하나 만들어 보도록 하겠습니다. 기본적으로 프로젝트를 만들어 보겠습니다. 프로젝트는 평소 사용하듯이 만들어 주시면 됩니다. 괜히 쓸대없는 파일이 안늘어 나도록 add No Activity만 선택하여 주시면 되겠습니다. 프로젝트를 만든후 테스트할 코드를 작성합니다. 저는 아래와 같이 현재 네트워크 상태를 체크하는 함수를 사용해봤네요. public static int getConnectivityStatus(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNEC..

1 2 3 4 5 6