반응형

Android 11 버전부터 바뀐점이 확인됨....

 

바로 폰에 설치되어 있는 다른 앱들의 패키지 정보를 가져오는 기능이 문제...

 

List<ApplicationInfo> pack = context.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);

 

해당 함수는 폰에 설치된 다른 패키지 정보를 가져오는 함수입니다.

 

그런데!! 

 

반응형

 

 

타겟 Build 버전을 안드로이드 11 API30 으로 적용할 경우 시스템 어플 리스트 및 일부 앱만 출력 될 뿐

더이상 설치된 모든 앱 패키지 정보를 가져오지 못합니다.

 

안드로이드 10 버전까진 정상동작....

 

그럼 어떻게 변경이 되나.... 

 

일단 공식문서상 내용은 다음과 같습니다. [링크]

 

패키지 공개 상태 관리  |  Android 개발자  |  Android Developers

패키지 공개 상태 관리 앱을 만들 때는 기기에 설치된 다른 앱, 즉 내 앱에서 액세스하려는 앱을 표시하는 패키지 집합을 고려하는 것이 중요합니다. 앱이 Android 11(API 수준 30) 이상을 타겟팅한다

developer.android.com

 

간단하게 설명하자면 아에 불가능한게 아니라 특정 패키지명을 명시한다면 검색 할 수 있다는 내용입니다.

 

<manifest>
  <queries>
      <package android:name="패키지명1" />
      <package android:name="패키지명2" />
  </queries>
</manifest>

 

위 처럼 manifest 속성파일 내에 queries 값으로 검색할 패키지명을 명시해 주면 가능합니다.

 

SMALL

 

List<ApplicationInfo> pack = getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);
for(ApplicationInfo packageInfo : pack){
	Drawable App_icon = getPackageManager().getApplicationIcon(packageInfo.packageName);
    String App_name = getPackageManager().getApplicationLabel(context.getPackageManager().getApplicationInfo(packageInfo.packageName, PackageManager.GET_UNINSTALLED_PACKAGES)).toString();
}

그러면 해당 코드를 이용하여 해당 패키지의 기본 아이콘 및 앱 이름을 가져올 수 있습니다.

 

이걸로 또 문제가 발생했지만 뭐... 해결방법은 찾았으니 모두들 즐코딩하세요 ㅎㅎ 이만

반응형
반응형

2021년 11월 부터 구글마켓 등록 시 Build SDK 버전이 최하 API30으로 잡아서 동작해야 함

 

관련해서 변동사항이 많은데 일단 중요한점은 2가지!!

 

1. Background Location 권한 

android.permission.ACCESS_BACKGROUND_LOCATION
반응형

2. 저장소 Storage 접근 제한

<uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="28"/>

 


하나씩 설명을 해보겠습니다.

 

먼저 Background Location 관련해서 시작할께요

 

기존에 Build SDK 버전을 29로 설정을 했을 경우에도 원래는 적용이 되었던 내용입니다.

Background 에서 위치정보를 수신하기 위해서 추가적으로 권한요청이 필요해졌습니다.

Background 에서 위치정보를 수신하기 위해서는 '항상 허용' 권한이 필요하지만 아래 첨부처럼 '항상 허용' 이란 부분이 사라졌습니다.

[참고] 권한요청 스크린샷

[구글 개발 자료] 위치 정보 액세스 권한 요청

 

위치 정보 액세스 권한 요청  |  Android 개발자  |  Android Developers

위치 정보 액세스 권한 요청 사용자 개인 정보를 보호하려면 위치 서비스를 사용하는 앱에서 위치 정보 액세스 권한을 요청해야 합니다. 위치 정보 액세스 권한을 요청할 때는 다른 런타임 권한

developer.android.com

 

해당 링크 내용을 보게되면 아래와 같은 내용이 있습니다.

하지만 Android 11(API 수준 30) 이상에서는 시스템 대화상자에 항상 허용 옵션이 포함되지 않습니다. 대신 사용자는 그림 7에 나와 있는 것처럼 설정 페이지에서 백그라운드 위치를 사용 설정해야 합니다.

설명처럼 사용자가 직접!! 어플리케이션 설정에 이동하여 직접~!! '항상 허용' 으로 설정해야 하는 상황입니다.

지금처럼 팝업에서 '항상 허용' 클릭은 이제 불가능 합니다.

SMALL

두번째로 저장소 권한!!!

 

현재까지는 아래와 같이 절대경로에 폴더를 만들어 많이 사용하였습니다.

String DIR_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "패키지명";

 

하지만 이젠 해당 Path에는 접근하지 못하게되었습니다.

 

대신!! 공유폴더를 사용하는것을 권장하고 있습니다.

 

[구글 공식 문서]

 

Android 11의 저장소 업데이트  |  Android 개발자  |  Android Developers

Android 11의 저장소 업데이트 Android 11(API 수준 30)에서는 플랫폼을 한층 더 강화하여 외부 저장소의 앱 및 사용자 데이터를 더욱 안전하게 보호합니다. 이 버전에는 미디어의 원시 파일 경로 액세

developer.android.com

 

설명 코드 경로
사진 Environment.getExternalStoragePublicDirectory(DIRECTORY_DCIM).getPath()
다운로드 Environment.getExternalStoragePublicDirectory(DIRECTORY_DOWNLOAD).getPath()
알람 오디오 Environment.getExternalStoragePublicDirectory(DIRECTORY_ALARMS).getPath()
음악 Environment.getExternalStoragePublicDirectory(DIRECTORY_MUSIC).getPath()
영상 Environment.getExternalStoragePublicDirectory(DIRECTORY_MOVIES).getPath()
Noti 알람음 Environment.getExternalStoragePublicDirectory(DIRECTORY_NOTIFICATIONS).getPath()
그림파일 Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES).getPath()
팟캐스트 Environment.getExternalStoragePublicDirectory(DIRECTORY_PODCASTS).getPath()

해당 경로처럼 지정된 기본 공유폴더 사용을 권장하게되었습니다.

 

이렇게 되면 어떤상황이 생기냐면.....

 

1. 공용폴더에 폴더 생성은 가능

2. 공용폴더에 있는 파일을 변경하기위해 호출은 불가...(개별권한요청 필요)

 

개별권한에 대한 내용은 따로 정리해서 올리겠습니다. 

 

일단 공용폴더 및 아래와 같이 File Path를 사용하면 사용가능합니다.

String DIR_PATH = context.getExternalFilesDir(null).getPath();

해당 Path 는 Android/data/패키지명/files 경로로 선언되고 해당 폴더는 앱 삭제 시 같이 삭제되는 폴더이니간 사용에 유의해야 합니다. 

 

일단 오늘은 여기까지 ㅎㅎ 

추가사항은 업데이트하겠습니다. 이만

반응형
반응형

하.... 안드로이드 11버전 대응을 하고 쫌 마무리되어가나 싶었는데 또 12 업데이트 소식이...

 

이건 또 언제 어떻게 대응을 해야하나 싶음...

 

 

 

일단 출시는 하지만 구글 픽셀6 에 먼저 탑재되어 배포가 될듯 싶음...

 

실질적으로 상용폰에 적용시점은 12월쯤? 

 

[구글 개발자 사이트] https://developer.android.com/about/versions/12/overview?hl=ko

 

Android 12 미리보기  |  Android 12 베타  |  Android Developers

Android 12 미리보기의 작동 방식과 일정, 포함된 기능을 알아봅니다.

developer.android.com

 

일단 자세한 내용은 구글 개발자 사이트에서 확인하면 될 듯 싶고....

 

정확한건 뭘 바꿔야 하나 싶은건데 알아보도록 하겠음...

 

 

일단 기능 및 변경사항 관련해서 내용은 아래 링크에 정리가 되어있음...

[Android 12 기능 및 변경사항 목록] https://developer.android.com/about/versions/12/summary?hl=ko

 

Android 12 기능 및 변경사항 목록  |  Android 개발자  |  Android Developers

Android 12 기능 및 변경사항 목록 다음 표에는 앱 개발자에게 영향을 미칠 수 있는 문서화된 모든 기능 및 동작 변경사항이 나열되어 있습니다. 이 목록을 사용하여 영향을 받는 변경사항을 찾고

developer.android.com

 

 

그리고....

 

12버전을 타게팅 했을 때 영향 받을 수 있는 부분은 아래 링크

[Android 12 타겟팅하는 앱] https://developer.android.com/about/versions/12/behavior-changes-12?hl=ko

 

동작 변경사항: Android 12를 타겟팅하는 앱  |  Android 12 베타  |  Android Developers

모든 앱에 영향을 주는 Android 12의 변경사항을 알아봅니다.

developer.android.com

 

 

 

반응형

아래 링크는 변경사항에 대한 기능 및 개요...

[Android 12 기능 및 개요] https://developer.android.com/about/versions/12/features?hl=ko#java

 

기능 및 API 개요  |  Android 12 베타  |  Android Developers

Android 12의 개발자를 위한 새로운 기능과 API를 알아봅니다.

developer.android.com

 

 

일단은 위치정보에 대해서 또 뭔가 변경사항이 있는듯 함....

https://developer.android.com/about/versions/12/behavior-changes-12?hl=ko#approximate-location

 

동작 변경사항: Android 12를 타겟팅하는 앱  |  Android 12 베타  |  Android Developers

모든 앱에 영향을 주는 Android 12의 변경사항을 알아봅니다.

developer.android.com

 

 

음... 다른건 크게 변경되지 않는거 같지만 일단 사용해 보면서 업데이트 진행하겠음

반응형

'뉴스 & 이슈' 카테고리의 다른 글

Android 11 패키지 공개 상태 관리  (7) 2021.11.21
Android 11 Build 타겟 적용 시 이슈  (0) 2021.11.17

+ Recent posts