본문 바로가기

Study/Android99

네트워크 연결 확인 (NetworkInfo Deprecated 대체) 이전에 쓰던 코드는 NetworkInfo를 사용하여 네트워크의 종류를 알아내는 코드였습니다. ConnectivityManager manager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info; try{ info=manager.getActiveNetworkInfo(); }catch (NullPointerException e){ info=null; } if(info!=null){ //인터넷 됨 }else{ //인터넷 안됨 } 하지만 API버전이 올라가면서 Deprecated되어 대체 메소드로 대체하였습니다. ConnectivityManager manager = (ConnectivityManager)g.. 2021. 3. 29.
android에서 excel파일 생성하기 안드로이드에서 Excel파일을 생성하려면 별도의 라이브러리가 필요합니다. 1.라이브러리 추가하기 https://poi.apache.org/download.html#POI-4.1.0 Apache POI - Download Release Artifacts Apache POI - Download Release Artifacts Available Downloads 09 April 2019 - POI 4.1.0 available The Apache POI team is pleased to poi.apache.org 위 링크를 눌러 POI 라이브러리를 다운로드 합니다. 2019년 4월 9일 현재 4.1.0이 최신버전입니다. 위 그림의 표시된 압축파일을 다운로드 한 후 압축을 풀어줍니다. 압축을 풀면 위와같이 많은 .. 2019. 5. 15.
Lint found fatal errors while assembling a release target. Device에서 debugging시에는 문제가 나오지 않았지만, APK를 Build 하는데 위의 에러가 나타납니다. Build 창에 위 그림과 같은 에러가 나타난다면, build.gradle의 android 안에 lintOptions을 위 그림과 같이 추가해주시면 됩니다. 추가된 모습입니다. 추가한 후 build를 하면 문제없이 build가 성공합니다. 2019. 5. 15.
android 9(P) notification permission android 8에서 notification 보안을 강화하면서 channel이 생겼는데 android 9에서는 permission을 추가해 줘야합니다. android 8 오레오(Oreo) 알림창(Notification) manifests로 이동하여 permission을 추가해 주면 됩니다. 물론 android 8에서 구현한 부분을 포함해야 합니다.^^ 위의 permission만 추가하셔서 실행하시면 됩니다.^^ 2019. 4. 5.
android P(9) Cleartext HTTP traffic to ..not permitted android 9 버전으로 오면서 보안이 많이 강화되었는데 그중 하나가 HTTP 통신의 제한입니다. 이제는 HTTPS 통신만 허용합니다. 하지만 API가 아직 HTTP만을 지원하여 알아보는 도중 임시 해결방안이 찾았습니다. 또한 API로 받아오는 것이 일반 텍스트 파일이라 가능합니다. manifest에서 application 속성에 아래 코드를 추가합니다. android:usesCleartextTraffic="true" 위의 코드는 Cleartext HTTP 통신은 가능하게 해주는 건데, 임시적으로 해결할 수 있습니다. 2019. 4. 5.
Android 8이상에서 재부팅시 서비스 시작하기(안될때) Android 8 이전에는 broadcast Receiver에서 service를 호출할때 context.startService(new Intent(context, callService.class)); 위의 코드로 호출을 하였습니다. 하지만 Android 8부터는 startService가 아닌 startForegroundService를 사용하여야 합니다. if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { context.startForegroundService(i); } else { context.startService(i); } 따라서 위의 부분만 코드를 수정해 주시면됩니다. 참고로 manifests의 권한입니다. manifests의 application부분입니.. 2019. 4. 5.

인기글