android 4

[Android] Fake gps 앱 및 모의위치 탐지

앱에서 네트워크 위치 및 gps 위치가 아닌 모의 위치를 사용하는 것을 탐지하려면 아래와 같이 작성 하면 됩니다. 1. 현재 기기에 MockSetting 옵션이 ON 인지를 검사하여 탐지 하는 방법 12345678910111213public static boolean isMockSettingsON(Context context){ boolean isMockLocation=false; try{ if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){ AppOpsManager opsManager=(AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE); isMockLocation=(opsManager.checkOp(Ap..

Android 2019.07.02

[Android]Retrofit을 이용한 apk 파일 다운로드 및 설치

개발 도중 플레이스토어에 올라가있지 않은 앱을 업데이트 하기위하여 앱에서 노티를 띄워 apk파일을 받아 설치하는 것을 구현하였습니다. 백그라운드에서 다운로드를 하고 notification에 progress를 업데이트 하기위해 아래와 같은 코드를 작성해야합니다. 1. Project Setup build.gradle에 retrofit의존성을 추가해줍니다. 1 implementation 'com.squareup.retrofit2:retrofit:2.5.0' Manifest에 아래와 같은 권한을 설정합니다. 1 2 3 4 5 6 7 또한 Android 7.0(Nougat / API 24)부터 Intent로 URI 파일 경로 전송시 "file://" 노출되어 있으면 FileUriExposedException 오류..

Android 2019.06.26

FileUriExposedException 오류 File Provider 로 해결

Android 7.0 이상부터 파일공유 정책이 변경되었습니다. Android 7.0 이상에서 File 경로를 Uri로 변경하고자 할 경우 아래와 같은 오류를 맞이하게 됩니다. Android 7.0 이상에서는 앱 외부에서 file://URI의 노출을 금지하는 StricMode API 정책을 적용합니다. ㅠㅏ일 URI를 포함하는 인텐트가 앱을 떠나면 FileUriExposedException 예외와 함께 오류가 발생합니다. 애플리케이션 간에 파일을 공유하려면 content://URI를 보내고 이 URI에 대해 임시 액세스 권한을 부여해야 합니다. 이 권한을 가장 쉽게 부여하는 방법은 FileProvider 클래스를 사용하는 방법입니다. res/xml/file_paths.xml 생성 AndroidManifes..

Android 2019.06.25

HttpURLConnection으로 웹서버 통신하기

1. 안드로이드의 서버 통신 안드로이드는 서버와 통신하기 위한 방법으로는 HTTP통신과 Soket통신이 있다. 오늘 다룰 내용은 HTTP통신으로 URL 접속을 통해 데이터를 읽어오는 방법이다. 우리는 주로 DB에 존재하는 데이터를 가져오기 위해 서버 통신을 한다. 하지만 안드로이드의 특성상 외부 DB에 직접 접근할 수 가 없도록 되어있어 중간 매체인 WEB을 활용해야한다. 이해를 위해 그림으로 쉽게 표현했다. [그림 1] 안드로이드와 WEB, 그리고 DB 통신 과정 안드로이드 통신은 보통 위와 같이 이뤄지며 본 포스팅에서는 'ANDROID-WEB'의 통신 방법에 대해 다룰 것이다. 우선 막연하게 WEB이라고만 하면 정확히 어떤 것을 말하는 것인지 헷갈릴 수 있다. 여기서 말하는 WEB은 HTML, JSP..

Android 2018.11.11