안드로이드 권한을 부여받도록 처리해야하는 위험한 권한 및 권한 그룹

Posted by HULIA(휴리아)
2019. 12. 23. 23:49 프론트엔드/안드로이드

https://developer.android.com/guide/topics/security/permissions.html?hl=ko#normal-dangerous

 

시스템 권한  |  Android 개발자  |  Android Developers

Permissions Google I/O 2015—Android M Permissions: Best Practices for Developers Android is a privilege-separated operating system, in which each application runs with a distinct system identity (Linux user ID and group ID). Parts of the system are…

developer.android.com

위의 링크에서 발췌한 내용입니다~

 

안드로이드 6.0(마시멜로우)버젼부터는 즉 targetSdkVersion 23부터는 아래의 위험한 권한에 대해서 사용자로부터 권한을 받아야 하는 로직이 들어가야 합니다

 

 

 

앱 권한을 받는 방법은 다음의 링크에서 확인하세요

https://developer.android.com/training/permissions/requesting?hl=ko

플레이 콘솔에서 프로덕션 출시시작 버튼을 클릭시 유효성 검사 오류 확인관련 처리 방법

Posted by HULIA(휴리아)
2019. 12. 8. 21:12 프론트엔드/안드로이드

프로덕션 출시시작 버튼을 눌렀는데 별이상이 없는데 출시가 안되어서 확인해보니까

 

앱정보의  앱콘텐츠 정보가 없어서 그런것 같네요

오랜만에 앱 업데이트 할려고 하니깐 이것저것 해야 할 게 많은듯요~

Bundle 객체 내에 FSI PDI라는 보이지 않는 문자열 제거 방법 자바 안드로이드

Posted by HULIA(휴리아)
2019. 12. 8. 16:57 프론트엔드/안드로이드

안드로이드에서 Bundle이라는 객체가 많이 쓰입니다

특히 안드로이드 시스템에 관련된 정보를 가져올때 쓰입니다

 

그런데 안드로이드 스튜디오에서는 출력되지 않는 문자열이 Debug를 돌려서 보니 보이더라구요

TEXTMESSAGE는 출력되는 메시지 인데 양옆에 FSI와 PDI라고 작게 표시가 되더라고요

그래서 구글에서 검색해 보았는데 별 정보가 안나오더라고요

 

그래서 일단 UltraEdit에 복사붙여넣기를 해보았더니

아 유니코드 였구나라는 생각이 들었습니다

그래서 유니코드로 검색을 해보았습니다

2068과 2069번이였습니다

 

그래서 

해당 문자열을 result에 넣은 후에 다음과 같이 제거하였습니다

result = result.replaceAll("[\\u2068-\\u2069]","");

 

 

안드로이드 Generate Signed Bundle APK 빌드시에 Program type already present 오류에 대한 처리

Posted by HULIA(휴리아)
2019. 11. 30. 20:37 프론트엔드/안드로이드

Program type already present: android.support.v4.accessibilityservice.AccessibilityServiceInfoCompatIcs

 

 

위에 에러는 아래일 경우 발생했는데

compileSdkVersion 23
buildToolsVersion "23.0.3"

 

아래와 같이 변경하니 해결되었습니다~

compileSdkVersion 28

buildToolsVersion "28.0.3"

안드로이드 Generate Signed Bundle APK 빌드시에 The project is using an unsupported version of Gradle 오류

Posted by HULIA(휴리아)
2019. 11. 30. 19:50 프론트엔드/안드로이드

The project is using an unsupported version of Gradle.
Please point to a supported Gradle version in the project's Gradle settings or in the project's Gradle wrapper (if applicable.)
Fix Gradle wrapper and re-import project
Open Gradle wrapper properties
Gradle settings

 

 

위의 오류가 나면 gradle 버젼이 낮아서 문제되는 것이리 gradle 버전을 올려주시면 됩니다

 

 

https://developer.android.com/studio/releases/gradle-plugin

 

Android Gradle 플러그인 출시 노트  |  Android Developers

Android 스튜디오 빌드 시스템은 Gradle을 기반으로 하며 Android Gradle 플러그인에는 Android 앱을 빌드하는 데 사용하는 몇 가지 추가 기능이 있습니다.

developer.android.com

위의 사이트에 가보면 플러그인 버전과 필요한 Gradle 버전이 나옵니다

왼쪽에 있는 플러그인 버전은 build.gradle파일에 대한 내용이고

오른쪽에 있는 필요한 Gradle 버젼은 gradle-wrapper.properties파일에 대한 내용입니다

 

플러그인 버전(build.gradle)
필요한 Gradle 버전(gradle-wrapper.properties)

 

안드로이드 Generate Signed Bundle APK 빌드시에 Signature Versions 옵션 조사

Posted by HULIA(휴리아)
2019. 11. 30. 19:27 프론트엔드/안드로이드

안드로이드 스튜디오(3.5.1)을 쓰게 되면서 Generate Signed Bundle APK를 만들때

Signature Versions을 체크 하게 되어 있는데요

 

V1은 기존방식

V2는 안드로이드 7.0부터 지원되는 것입니다

 

 

https://source.android.com/security/apksigning/v2

 

 

둘다 사용이 가능하기에

저는 V1, V2 모두 체크해서 빌드를하고 있습니다~

HttpURLConnection 405 에러 getResponseCode() 해결하는 방법

Posted by HULIA(휴리아)
2019. 10. 24. 22:52 프론트엔드/안드로이드

안드로이드에서 HttpURLConnection을 이용해서 서버와 통신할때 405 Method Not Allowed 에러가 날때는

.setDoOutput(true);를 제거해주셔야 합니다

 

GET메소드를 이용해도

setDoOutput(true)를 이용하면

POST메소드로 변경이 되어서 발생하였던 것 입니다

 

구글링 하다보면 GET메소드인데 setDoOutput(true);된 소스가 많은데 주의 해야 겠습니다~

 

저도 해결하고보니 이러네요^^

안드로이드 스튜디오에서 SQLilte DB 백업하기 확인하는 프로그램 설치

Posted by HULIA(휴리아)
2019. 2. 25. 22:16 프론트엔드/안드로이드

안드로이드 스튜디오에서 SQLlite DB 백업하기



1) 안드로이드 스튜디오 View->Tool Windows -> Device File Explorer를 실행





/data/data/확인하고 싶은 패키지 명/databases

폴더 내부의 파일들이 DB파일들이다

-journla이라고 붙은 파일이 아닌 파일이 DB파일들이다




해당파일에서 마우스 오른쪽 버튼을 누르면 나오는 Save AS라는 메뉴를 통해서 자기 컴퓨터에 백업을 받는다



그리고 백업 받은 파일의 내용을 보는 방법은


https://sqlitebrowser.org/


위의 링크를 통해서 다운을받고 설치를 합니다

설치를 안해도 되는 Portable버젼이 있으니 그걸로 설치해도 됩니다



데이터베이스 열기를 해서 DB파일을 열거나

데이터베이스 구조 텝에 DB파일을 끌어다 놓아도 열립니다




그리고 나서 테이블에서 마우스 오른쪽 메뉴를 통해서 명령이 가능합니다



테이블을 보기를 하면 컬럼에 그에 맞는 데이터가 나옵니다^^





Android 광고 ID 사용 및 개발자 배포 계약의 4.8 조항을 위반 메일왔을때에 대처

Posted by HULIA(휴리아)
2018. 10. 25. 23:35 프론트엔드/안드로이드

처음으로 위반 메일 오고 한동안 맨붕에 빠졌습니다

앱을 전체 다 수정해야하는가 아니가하고 한달동안 손도 못되고 플레이스토어에서 앱이 삭제되는 일이 벌어졌지요...


그리고 이제야 대처를 했네요ㅋㅋ


해결 방법은 

1단계)개인정보처리방침 만들고 

2단계)개이정보처리방침의 링크를 구글 플레이 콘솔에 로그인해서 메뉴중에 앱 정보 > 스토어 등록정보의 개인정보처리방침에 링크를 추가하고 앱 다시 제출하기 버튼을 클릭하면 됩니다




1단계를 도와줄 수 있는 사이트가 있답니다

도움사이트1) 개인정보보호 종합포털(https://www.privacy.go.kr/main/mainView.do)에 접속해서 오른쪽 하위에 개인정보 처리방침 만들기를 통해서 만들기

배포되는 개인정보처리방침작성예시(민간용)입니다

개인정보처리방침_작성예시(민간용).hwp


도움사이트2)  (https://app-privacy-policy-generator.firebaseapp.com/)에 접속해서 개인정보 처리방침 만들기



개인정보보호지침들 예시 1)

http://www.mombie.kr/single-post/2017/09/12/%EB%A7%98%EB%B9%84-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%B1-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4-%EC%B7%A8%EA%B8%89%EB%B0%A9%EC%B9%A8


개인정보보호지침들 예시 2)

http://cubana7.cafe24.com/254


개인정보보호지침들 예시 3)

http://superwony.tistory.com/8


개인정보보호지침들 예시 4)

http://elwoxcorp.com/?page_id=887


개인정보보호지침들 예시 5)

https://new.whooing.com/#info/privacy


개인정보보호지침들 예시 6)

https://policy.naver.com/policy/privacy.html





안드로이드 imageview에 url의 이미지 보여주기

Posted by HULIA(휴리아)
2017. 10. 10. 22:56 프론트엔드/안드로이드
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;

public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}

protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
LogUtil.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}

protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
new DownloadImageTask((ImageView) findViewById(R.id.iv_myimage))
.execute(AppDefine.APP_USER.getImage_url());
<ImageView
android:id="@+id/iv_myimage"
android:layout_width="120dp"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_alignTop="@+id/tv_myname"
android:layout_marginBottom="10dp" />