반응형
구글 플레이 콘솔 정책 거부
24년 12월 부터 READ_MEDIA_IMAGES/VIDEO를 안쓰는 것이 권장되었다.
최근 업데이트 하려고 할 때 아래 사유로 거절이 되었고
이에 대응 해서 Android Photo Picker를 적용한다.
앱이 허용되는 READ_MEDIA_IMAGES/READ_MEDIA_VIDEO 권한의 사용 방식을 준수하지 않는 것으로 확인되었습니다.
앱에서 기기의 미디어 파일에 일회성으로 또는 가끔가다 액세스해야 합니다.
핵심 사용 사례에 따라 기기의 공유 저장소에 있는 사진 및 동영상 파일에
지속적으로 액세스해야 하는 앱만 사진 및 동영상 권한을 사용할 수 있습니다.
요구사항에 관한 자세한 내용은 Google Play의 사진 및 동영상 권한 정책을 참고하세요.
Android Photo Picker 적용 - image_picker
가 있기 하지만, flutter 개발을 위해서는 Flutter package를 활용한다.
image_picker라는 패키지를 활용한다.
class ImageService {
final SupabaseClient _supabase = Supabase.instance.client;
final ImagePicker _picker = ImagePicker();
static const double _maxWidth = 1024.0; // 최대 너비
static const double _maxHeight = 1024.0; // 최대 높이
static const int _quality = 85; // JPEG 품질 (0-100)
// 이미지 선택 (갤러리 또는 카메라)
Future<File?> pickImage({required bool fromCamera}) async {
final XFile? image = await _picker.pickImage(
source: fromCamera ? ImageSource.camera : ImageSource.gallery,
maxWidth: _maxWidth,
maxHeight: _maxHeight,
imageQuality: _quality,
);
if (image == null) return null;
return File(image.path);
}
}
기존에는 권한 관리를 따로 해줘야했지만
이젠 따로 권한 관리를 해주지 않아도 된다.
다음과 같은 코드들이 전부 필요 없어졌다.
개발하기는 더 편해졌다.
// // 권한 요청
// final hasPermission = fromCamera
// ? await PermissionService.requestCameraPermission(context)
// : await PermissionService.requestStoragePermission(context);
// if (!hasPermission) {
// if (mounted) {
// ScaffoldMessenger.of(context).showSnackBar(
// const SnackBar(
// content: Text('권한이 없어 사진을 선택할 수 없습니다.'),
// backgroundColor: Colors.red,
// ),
// );
// }
// return;
// }
반응형
'Flutter' 카테고리의 다른 글
[Flutter] SQFLite DB Migration 진행하는 방법 (2) | 2024.12.26 |
---|---|
[Flutter] 안드로이드 앱 배포 하는 방법 정리 (0) | 2024.12.17 |
[Flutter] Firebase 광고 추가 google_mobile_ads- 12.06 (1) | 2023.12.06 |
댓글