자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

안녕하세요. 

안드로이드에서 생성된 파일을 메일 등으로 보내는 루틴은

wwEmailWithAttachment.pas를 통해 구현을 했습니다.

그러나 안드로이드 7.1에서는 되었는데

그 이후 버젼에서는 아래 사진과 같이 에러가 발생합니다.

권한문제인것 같습니다만 해결할 방법은 있을까요?

 

----------- 추신 ---------------

wwEmailWithAttachment.pas 내 안드로이드 부분을 인텐트를 사용하여

다음과 같이 수정했습니다.

{$region 'android'}

{$ifdef android}

procedure wwEmail(Recipients: Array of String; ccRecipients: Array of String;

  bccRecipients: Array of String; subject, Content, AttachmentPath: string;

  mimeTypeStr: string = '');

var

  Intent: JIntent;

  Uri: Jnet_Uri;

  AttachmentFile: JFile;

  i: integer;

  emailAddresses: TJavaObjectArray<JString>;

begin
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_SENDTO);
  Intent.setData(TJnet_Uri.JavaClass.parse(StringToJString('mailto:')));
 
  emailAddresses := TJavaObjectArray<JString>.Create(length(Recipients));
  for i := Low(Recipients) to High(Recipients) do
    emailAddresses.Items[i] := StringToJString(Recipients[i]);
 
  AttachmentFile := TJFile.JavaClass.init(StringToJString(AttachmentPath));
  Uri := TJnet_Uri.JavaClass.fromFile(AttachmentFile);
 
  Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, emailAddresses);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(subject));
  Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(Content));
  Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap((Uri as ILocalObject).GetObjectID));
 
  SharedActivity.startActivity(Intent);
end;
{$endif}
{$endregion}
 
그러나 실행해보면 ''첨부화일에 대한 권한이 거부되었습니다."라고 화일이 첨부되지 않는데
해결방법이 있을까요?