안드로이드 API 레벨 26 지원

RAD 스튜디오 10.3 리오는 안드로이드 API 레벨 26을 공식 지원합니다.

구글은 보안과 성능에 최적화된 최신 API 기반으로 앱을 만들고, 사용자가 혜택을 누릴 수 있도록, 플레이 스토어에 등록 시 안드로이드 레벨 26 이상을 요구하도록 정책을 변경했습니다.(신규앱 등록 2018년 8월 부터, 기존앱 업데이트 2018년 11월 부터)

 

RAD 스튜디오 10.3 리오는 최신 SDK와 NDK를 지원하고, 매니페스트에 적절한 API레벨을 설정할 수 있도록 업데이트 되었습니다.

또한 최신 API에서 변경된 권한 모델등을 제공하도록 업데이트 되었습니다.

 

새로운 안드로이드 런타임 권한 모델 지원

안드로이드 API의 최신버전은 런타임 시 권한을 요청하는 매커니즘으로 변경되었습니다.

 

기존의 권한 모델은 설치 시 전체 권한을 승인하는 방식이었습니다. 새로운 권한 모델은 기능 사용 시 개별 권한을 묻는 방식으로, 사용자는 기능 별 허용 및 거부가 가능해졌습니다.

 

기존 권한 요청 방식

old_perminssion.png

새로운 권한 요청 방식

new_permissions2.png

 

위 변경에 따라 10.3 리오에서는 사용 권한을 요청하는 메소드가 추가되었고, 그 결과를 콜백 메소드로 받아 기능을 수행할 수 있도록 업데이트 되었습니다.

 

다음 델파이 코드는 위치를 권한을 요청하는 델파이 Location 샘플코드(Object Pascal/Mobile Snippets/Location)의 일부입니다.

procedure TLocationForm.swLocationSensorActiveSwitch(Sender: TObject);
begin
{$IFDEF ANDROID}
  if swLocationSensorActive.IsChecked then
    PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION)],
      procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
      begin
        if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
          { activate or deactivate the location sensor }
          LocationSensor1.Active := True
        else
        begin
          swLocationSensorActive.IsChecked := False;
          TDialogService.ShowMessage('Location permission not granted');
        end;
      end)
  else
{$ENDIF}
    LocationSensor1.Active := False;
end;

다음 샘플 프로젝트에서 새로운 안드로이드 권한 모델의 실제 사용사례를 확인할 수 있습니다. 여러분들의 안드로이드 코드를 업데이트 하기 위해 참고하실 수 있습니다.

  • CPP/Mobile Snippets/AccessCameraApp
  • CPP/Mobile Snippets/AudioRecPlay
  • CPP/Mobile Snippets/CameraComponent
  • CPP/Mobile Snippets/CameraRoll
  • CPP/Mobile Snippets/Location
  • CPP/Mobile Snippets/PhoneDialer
  • CPP/Mobile Snippets/ShareSheet
  • CPP/Multi-Device Samples/Device Sensors and Services/Address Book/BirthdayReminder
  • CPP/Multi-Device Samples/Device Sensors and Services/Address Book/Contacts
  • CPP/Multi-Device Samples/Device Sensors and Services/Bluetooth/BLEScanner
  • CPP/Multi-Device Samples/Device Sensors and Services/FlashLight
  • CPP/Multi-Device Samples/Device Sensors and Services/Map Type Selector
  • CPP/Multi-Device Samples/Device Sensors and Services/SensorInfo
  • CPP/Multi-Device Samples/Media/MusicPlayer
  • CPP/Multi-Device Samples/Media/PhotoEditorDemo
  • Object Pascal/Mobile Snippets/AccessCameraApp
  • Object Pascal/Mobile Snippets/AudioRecPlay
  • Object Pascal/Mobile Snippets/CameraComponent
  • Object Pascal/Mobile Snippets/CameraRoll
  • Object Pascal/Mobile Snippets/Location
  • Object Pascal/Mobile Snippets/PhoneDialer
  • Object Pascal/Mobile Snippets/ShareSheet
  • Object Pascal/Multi-Device Samples/Device Sensors and Services/Address Book/BirthdayReminder
  • Object Pascal/Multi-Device Samples/Device Sensors and Services/Address Book/Contacts
  • Object Pascal/Multi-Device Samples/Device Sensors and Services/App Tethering/PhotoWall/Mobile
  • Object Pascal/Multi-Device Samples/Device Sensors and Services/Bluetooth/BLEScanner
  • Object Pascal/Multi-Device Samples/Device Sensors and Services/FlashLight
  • Object Pascal/Multi-Device Samples/Device Sensors and Services/Map Type Selector
  • Object Pascal/Multi-Device Samples/Device Sensors and Services/SensorInfo
  • Object Pascal/Multi-Device Samples/Media/MusicPlayer
  • Object Pascal/Multi-Device Samples/Media/PhotoEditorDemo
  • Object Pascal/RTL/Tethering/PhotoWall/Mobile

 

관련글


 

 

 

 

10.3 리오의 업데이트 버전들

 

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15437
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13961
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16499
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22055
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18923
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39255
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174698
1283 [발표자료] 델파이 개발자가 REST 서비스를 활용할 때 가장 많이 하는 질문 TOP 5 file 관리자 2020.09.18 1179
1282 [마이그레이션] C++빌더 프로젝트 업데이트하기! 관리자 2020.09.17 404
1281 [10.4 시드니][업데이트 1] 새로운 TLightweightMREW 레코드 관리자 2020.09.10 412
1280 [10.4 시드니][업데이트 1] 델파이 코드 인사이트 새로운 기능 관리자 2020.09.10 389
1279 C++ 빌더 BDE를 FireDAC으로 마이그레이션 자동화 도구 [1] file 험프리 2020.09.10 358
1278 델파이 마이그레이션 요구 사항 Top 5 (영문 비디오를 한글 문서로 번역) 관리자 2020.09.05 356
1277 [10.4 시드니][업데이트 1] What's NEW! 신기능 자세히 보기 [2] 관리자 2020.09.03 981
1276 스레드 사용시 로긴오류 나마 2020.09.03 300
1275 /n 소프트웨어 – IPWorks WebSockets 관리자 2020.09.01 435
1274 AtoZed – IntraWeb 15 Personal 관리자 2020.09.01 332
1273 윈소프트(Winsoft) – 스탠다드 컴포넌트 패키지 (100+가지) 관리자 2020.09.01 438
1272 Steema – TeeGrid (VCL/FMX용) 관리자 2020.09.01 355
1271 JomiTech – TwineCompile (C++빌더용) 관리자 2020.09.01 310
1270 데브아트 – SecureBridge 관리자 2020.09.01 360
1269 [REST API] REST 기반 파일 업로드와 다운로드 구현하기 험프리 2020.08.31 83088
1268 Fire Power X - RAD스튜디오 10.4 버전에 최적화된 파이어몽키용 컴포넌트 스위트 관리자 2020.08.28 316
1267 DelphiParser: Conversion Component Suite - 델파이 코드를 최신으로 현대화하는 마이그레이션 도구 관리자 2020.08.28 392
1266 InstallAware - VCL 애플리케이션을 윈도우용 설치 파일로 생성 file 관리자 2020.08.28 372
1265 [개발환경] 델파이, RAD스튜디오 에서 Git과 Github를 사용해야하는 이유와 꼭 필요한 만큼 사용법 관리자 2020.08.27 1288
1264 TMS Aurelius - ORM 프레임워크 관리자 2020.08.27 436