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

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 바쁜 와중에도 답변을 주시는 분들께 감사 댓글 필수
-----------------------------------------------------------------------------------------------
안드로이드에서 shellexcute처럼 파일을 열었을 때

Intent사용해서 외부 실행가능한 앱들을 연결할 수 있게끔 해주려고 합니다.

테스트해보니까 잘 되는 것 같은데 xlsx, ppt, pdf 확장자에 대해서

기본 구글앱스(스프레트시트, 프레젠테이션, 드라이브 PDF 뷰어)들이 받지를 못합니다.

이미지 파일에 대해서 구글앱스 중에 포토, 갤러리는 문제없이 잘 받습니다.

 

그래서 미메타입을 얻었는데 연결될 앱이 하나도 없으면 아래와 같은 Exception을 뱉어냅니다. 예외처리는 하면 되지만,

미메타입을 */*로 해도  구글앱스(스프레트시트, 프레젠테이션, 드라이브 PDF 뷰어)들이 선택 목록에 없습니다.

이것때문에 기본 구글앱스가 있는데 사용자에게 서드파티앱을 설치하도록 강제하는 것도 그렇고

제가 무엇을 조치하면 구글앱스가 Intent를 받을까요?

제 디바이스에서 ES 파일 탐색기로 해당 확장자 파일 열어보면 해당 구글앱스들이 잘 나옵니다.

증상은 제 디바이스와 에뮬레이터 둘 다 테스트해도 똑같습니다.

 

intentException.png

아래는 제가 테스트해본 예제소스는입니다.

 

uses
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.JavaTypes,
  Androidapi.Helpers,
  System.IOUtils,
  Androidapi.JNI.Webkit;

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
var
  Intent: JIntent;
  filename: String;
  t: JString;
begin
  filename := Edit1.text;
  Intent := TJIntent.Create;

  // Get MIME Type
  t := TJMimeTypeMap.JavaClass.getSingleton.getMimeTypeFromExtension
        (StringToJString (StringReplace (TPath.GetExtension(filename), '.', '', [])));
  if t = nil then
    t := StringToJString('*/*');

  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.setDataAndType(StrToJURI(TPath.GetPublicPath + PathDelim + filename),  t);
  SharedActivity.startActivity(Intent);
end;

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 20051
공지 유용한 관련 사이트 관리자2 2014.03.20 58960
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102578
454 블루투스 바코드스캐너연동 질문입니다. [3] file 과객 2017.11.26 853
453 동영상 재생시 로그파일 문의 [1] 소란코더 2017.11.25 937
452 WebBrowser 관련 문의 [6] 세스나 2017.11.09 500
451 radsetver 10.2 ios 개발 인증관련 [1] file 밤바야 2017.11.21 155
450 TLocationSensor에는 안드로이드(자바)처럼 세부 설정이 없나요? [1] file 소란코더 2017.11.20 199
» FMX앱에서 던진 Intent를 Google Apps가 Intent를 받지 못합니다. [1] file Vincent 2017.11.14 474
448 32 bit 윈도우 모드로 테스트할 때 ListView 삭제기능의 구현방법에 대해 문의드립니다. [1] 스카이 2017.11.11 321
447 TWebBrowser를 통한 JS에서 FMX앱의 Function, Procedure 실행 문의 [1] 나즈나 2017.11.10 391
446 listview를 DB와 livebind시 바인딩된 자료변화... [1] bursil 2017.11.13 229
445 개발모드에서는 발생하지 않는데 구글플레이에서 다운받은 앱은 강제종료되는데 설정 잘못인지요? 스카이 2017.11.11 268
444 VirtualKeyboard 관련 질문있습니다. 신우 2017.11.10 187
443 docking or Handle 문제 문의 [1] 마이밥 2017.11.03 362
442 sqlconnection 문제 [1] bursil 2017.11.02 190
441 안드로이드에서 IndyFTP Put할 때 EIdReadTimeout 에러 [2] Vincent 2017.10.31 338
440 TWebview 가상키보드 문제 [2] 지병철 2017.10.26 607
439 Android 에서 TMemo에 여러개의 줄이 입력되지 않습니다 [5] 지병철 2017.10.26 338
438 TEdit 문제. file Vincent 2017.10.25 172
437 아이폰 상태바에 내용이 안보이고 그만큼 잘리는 현상입니다. [1] gildata 2017.10.19 366
436 Android 앱 실행 시 자동 업데이트 방법 [1] 로로봉 2017.10.12 2075
435 시리얼통신 델파이 -> 안드로이드 시리널통신 도와주세요 [2] 텔로스김 2017.09.22 1057