Written by
LSM
on
on
Android:Android 10 변경사항
개인정보 보호 관련 변경사항
범위 지정 저장소
- 외부 저장소의 필터링된 보기, 앱 별 파일 및 미디어 컬렉션에 대한 엑세스 제공
- 사용자 권한을 요청하지 않는 경우
- getExternalFileDir()을 이용하는 앱별 디렉터리 파일
- 앱이 MediaStore에서 만든 사진/동영상/오디오 클립 => ImageUtil.java에서 getUri 메소드가 file://로 시작하는 uri 제공 => Android 10 이상 파일 관련 요청 시(저장/uri 등) MediaStore를 이용해 쿼리
- 사용자 권한을 요청하지 않는 경우
-
재설정할 수 없는 하드웨어 식별자
- 기기 일련번호 및 IMEI 엑세스에 대한 제한
- 관심 연락처 제거
- 무작위 MAC 주소
- 재설정 할 수 없는 기기 식별자 제한
- 클립보드 데이터 엑세스 제한
- USB 기기 일련번호 보호
- 식별자 엑세스를 위해서는 READ_PRIVILEGED_PHONE_STATE 권한이 있어야 함
- 그냥 요청 시 SecurityException이 발생
- Build
- getSerial()
- TelephonyManger
- getDeviceId()
- android id 처럼 변하지 않는 고유 값을 사용하는 경우 SSAID를 사용하는 방법이 있음 https://developer.android.com/training/articles/user-data-ids
- 기기 일련번호 및 IMEI 엑세스에 대한 제한
-
백그라운드에서 액티비티 실행 제한
-
사용자 인터럽션 최소화 및 사용자가 현재 사용 중인 스크린 집중을 위한 변경
-
대체 방법으로는
이용 방법이 있음
-
-
무선 검색 권한
- Wi-Fi, Wi-Fi Aware, 블루투스 검색 방법에 엑세스 하는데 세부 위치 정보 엑세스 권한 필요
- ACCESS_FINE_LOCATION 권한 필요
- Wi-Fi, Wi-Fi Aware, 블루투스 검색 방법에 엑세스 하는데 세부 위치 정보 엑세스 권한 필요
모든 변경 사항
- Android 10(GO 버전) SYSTEM_ALERT_WINDOW 권한 받을 수 없음
- 과도한 메모리 사용으로 인해 10부터 시스템이 자동으로 요청 거부
- Android 9 -> 10 업그레이드 시 권한이 유지되나 새로운 권한 요청의 경우 부여 불가
- HTTPS 연결 변경
- setSSLSocketFactory()에 null 전달 시 illegalArgumentException 발생
- ZIP 파일 유틸리티 라이브러리 변경
- end() 이후 Inflater 클래스 호출 시 NullPointerException 발생
- File/int/Charset 인수를 사용하는 ZipFile 생성자는 제공된 Zip 파일에 아무것도 포함되지 않으면 ZipException 발생
- 아무것도 포함되지 않은 Zip 파일에 출력 스트림을 쓰려고 시도시 ZipOutputStream의 finish()에서 ZipException 발생
- Android Beam 지원 중단
- Android Beam 지원 중단 및 관련 NFC API 지원 중단
동작변경 (API 29 이상을 타겟)
- java.io.FileChannel.map() 변경
- truncate()를 사용해 크기 변경이 불가능한 비표준 파일에서 지원이 되지 않음
- 이전 버전은 오류표시가 없으나 10부터 IOException 발생
개발자를 위한 기능 및 API
- WebView 중단 렌더러 감지
- WebView 응답 여부를 감지하는 새로운 추상 클래스 도입 : WebViewRenderProcessClient
- WebView가 응답하지 않으면 주기적(5초에 1번 이하)로 onRenderProcessUnresponsive()
- WebView가 다시 응답 시 onRenderProcessUnresponsive()를 한 번만 호출
- 블루투스 LE 연결 지향 채널 (CoC)
- 10 사용 시 BLE CoC 연결을 통해 두 BLE 기기 간 대형 데이터 스트림 전송 가능