gibson 7월 11일, 2022에 포스트됨 공유하기 7월 11일, 2022에 포스트됨 현재 Rad Studio 11버전을 사용하여, Delphi로 다중 Platform에서 작동하는 어플을 개발하고 있습니다. 그러나 Android에서 작동을 시킬 때면, 카메라 기능을 사용할 때 마다, " java.lang.IllegalArgumentException: Couldn't find meta-data for provider with authority com.embarcadero.prjLB13.fileprovider " 를 띄웁니다. 현재 별 다른 기능을 넣진 않았고, Button 3개와 이미지를 출력할 CameraImage 1개를 넣었는데, 각각의 버튼은 Properties.Action에 Button1 - 'TakePhotoFromCameraAction', Button2 - 'TakePhotoFromLibraryAction', Button3 - 'ShowShareSheetAction' 을 할당하였고, 또 이 각 Action의 Event에 procedure TForm.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap); begin CameraImage.Bitmap.Assign( Image ); end; procedure TForm.TakePhotoFromLibraryAction1CanActionExec( Sender: TCustomAction; var CanExec: Boolean); begin CameraImage.Bitmap.Assign( Image ); end; procedure TForm.ShowShareSheetAction1BeforeExecute(Sender: TObject); begin ShowShareSheetAction1.Bitmap.Assign(CameraImage.Bitmap); end; 으로, 'TakePhotoFromCameraAction' - 'OnDidFinishTaking' 'TakePhotoFromLibraryAction' - 'OnDidFinishTaking' 'ShowShareSheetAction' - OnBeforeExecute' Event들을 할당하였습니다. 이렇게 해 놓은 상태에서 'TakePhotoFromLibraryAction'는 정상작동하나, 'TakePhotoFromCameraAction'와 'ShowShareSheetAction'가 상기된 에러를 띄웁니다. 질문용 code.txt 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
0 gibson 7월 12일, 2022에 포스트됨 Author 공유하기 7월 12일, 2022에 포스트됨 기본 Permission중 하나인 Camera가 알려주신 위치가 아닌, 저 아래 Dangerous에 있으며, 첨부한 사진과 같이, 설정 안할 시 우측 상단 처럼 아예 권한이 없고, 중간에 있는 부분처럼 권한 없다는 에러를 띄우며, 설정 시 어플설정에서 권한을 줄 수 있는대신, 권한을 주면, "java.lang.IllegalArgumentException: Couldn't find meta-data for provider with authority com.embarcadero.prjLB13.fileprovider" 에러를 띄웁니다. 이런경우에는 아예 Delphi를 삭제하고 다시 설치해야 하는건가요? 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
0 gibson 7월 12일, 2022에 포스트됨 Author 공유하기 7월 12일, 2022에 포스트됨 (edited) Camera를 제외한 모든 Premission을 false로 바꿔, Camera만 활성화 시킨 상태에서 Test해보면, 분명 어플설정에서 카메라 권한 허용 했음에도 권한이 없다고 나옵니다. Edited 7월 12일, 2022 by gibson 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
0 c2design 7월 14일, 2022에 포스트됨 공유하기 7월 14일, 2022에 포스트됨 혼돈의 소지가 있어서 기존 답글은 삭제하고 다시 답변 답니다. 부분적으로 설명 하는것 보다 델파이 설치시 나오는 기본 샘플을 보시고 적용하시는게 더 좋을것 같습니다. 기본샘플 경로는 아래와 같습니다. c:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Object Pascal\Multi-Device Samples\Media\PhotoEditorDemo\ 제가 테스트해 본 결과 문제 없이 작동하고 권한을 주는 방법은 기존에 제가 올린 댓글과 좀 다른 방법인데 소스에 주석이 나와 있으니 같이 참고 하시면 될것 같습니다. 카메라 사용시 권한은 카메라와 외부저장 읽기/쓰기 (총3개) 같이 주는게 맞습니다. 샘플 프로젝트를 열고 퍼미션을 확인해 보시면 됩니다. 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
질문
gibson
현재 Rad Studio 11버전을 사용하여, Delphi로 다중 Platform에서 작동하는 어플을 개발하고 있습니다.
그러나 Android에서 작동을 시킬 때면, 카메라 기능을 사용할 때 마다,
" java.lang.IllegalArgumentException: Couldn't find meta-data for provider with authority com.embarcadero.prjLB13.fileprovider "
를 띄웁니다.
현재 별 다른 기능을 넣진 않았고,
Button 3개와 이미지를 출력할 CameraImage 1개를 넣었는데,
각각의 버튼은
Properties.Action에
Button1 - 'TakePhotoFromCameraAction',
Button2 - 'TakePhotoFromLibraryAction',
Button3 - 'ShowShareSheetAction'
을 할당하였고,
또 이 각 Action의 Event에
procedure TForm.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap);
begin
CameraImage.Bitmap.Assign( Image );
end;
procedure TForm.TakePhotoFromLibraryAction1CanActionExec(
Sender: TCustomAction; var CanExec: Boolean);
begin
CameraImage.Bitmap.Assign( Image );
end;
procedure TForm.ShowShareSheetAction1BeforeExecute(Sender: TObject);
begin
ShowShareSheetAction1.Bitmap.Assign(CameraImage.Bitmap);
end;
으로,
'TakePhotoFromCameraAction' - 'OnDidFinishTaking'
'TakePhotoFromLibraryAction' - 'OnDidFinishTaking'
'ShowShareSheetAction' - OnBeforeExecute'
Event들을 할당하였습니다.
이렇게 해 놓은 상태에서
'TakePhotoFromLibraryAction'는 정상작동하나,
'TakePhotoFromCameraAction'와 'ShowShareSheetAction'가 상기된 에러를 띄웁니다.
질문용 code.txt
이 댓글 링크
다른 사이트에 공유하기
3 answers to this question
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.