Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr
  • 0

Delphi로 Android에 동작할 어플을 만들 때, 카메라기능을 사용하면 자꾸 에러를 띄웁니다.


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'가 상기된 에러를 띄웁니다.

Screenshot_20220711-131249.jpg

Screenshot_20220711-131255.jpg

질문용 작업화면.PNG

질문용 code.txt

이 댓글 링크
다른 사이트에 공유하기

3 answers to this question

Recommended Posts

  • 0

기본 Permission중 하나인 Camera가

알려주신 위치가 아닌, 저 아래

Dangerous에 있으며,

첨부한 사진과 같이, 설정 안할 시 우측 상단 처럼 아예 권한이 없고,

중간에 있는 부분처럼 권한 없다는 에러를 띄우며,

설정 시 어플설정에서 권한을 줄 수 있는대신,

권한을 주면, "java.lang.IllegalArgumentException: Couldn't find meta-data for provider with authority com.embarcadero.prjLB13.fileprovider"

에러를 띄웁니다.

 

이런경우에는 아예 Delphi를 삭제하고 다시 설치해야 하는건가요?

220712_prjLB13_Permissions 에러.png

이 댓글 링크
다른 사이트에 공유하기

  • 0

혼돈의 소지가 있어서 기존 답글은 삭제하고 다시 답변 답니다.

부분적으로 설명 하는것 보다 델파이 설치시 나오는 기본 샘플을 보시고 적용하시는게 더 좋을것 같습니다.

기본샘플 경로는 아래와 같습니다.

c:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Object Pascal\Multi-Device Samples\Media\PhotoEditorDemo\

제가 테스트해 본 결과 문제 없이 작동하고

권한을 주는 방법은 기존에 제가 올린 댓글과 좀 다른 방법인데 소스에 주석이 나와 있으니 같이 참고 하시면 될것 같습니다.

카메라 사용시 권한은 카메라와 외부저장 읽기/쓰기 (총3개) 같이 주는게 맞습니다. 

샘플 프로젝트를 열고 퍼미션을 확인해 보시면 됩니다.

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 질문에 답변하기...

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.