자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 39968
공지 유용한 관련 사이트 관리자2 2014.03.20 79507
452 FMX에서 플랫폼의 CPU 코어갯수나 스레드 갯수가져오는법? 100jk 2019.03.01 456
451 아이폰 TTS 예제.. 가을이다 2015.09.03 457
450 쇼핑몰 결제시스템 연동 문의 지병철 2018.04.23 457
449 TListBox 런타임 시 스크롤 위치 변경방법이 궁금합니다. 김태윤 2018.04.09 461
448 휴대폰 번호나 맥 번호를 받아올 수 없을까요? [1] 거북이 2015.11.12 461
447 TEdit 에서 EJNIFatal with message 'Invoke error: [2] 빨리빨리 2016.02.27 461
446 앱 재실행 관련 문의드립니다. [1] 우정 2017.02.11 462
445 App Bundle은 Rad Studio에서 무엇을 말하나요? [1] 토끼왕 2019.08.27 462
444 TListBox 내 TListItem 삭제 [2] 공수래 2021.03.10 462
443 블루투스 터미널 앱을 만들고싶습니다. 데이터 수신은 어떻게하나요? [1] Rarity 2018.09.09 463
442 10.3.1 리오 - 버튼 툴바등 컴포넌트 컬러 [2] 델파인 2019.03.19 465
441 유투브 링크 영상을 플레이 하는법이 궁금합니다. [1] 최향태 2016.04.14 467
440 안드로이드 ViewPager 구현 문의 [2] file 손주영 2016.07.08 468
439 TWebBrowser 관련문의 [1] 아가머하노 2017.09.17 468
438 모바일에서 sqlite를 사용하고 싶은데요 [1] 헨씀히포 2016.02.10 469
437 TComboBox, TDateEdit, TTimeEdit등 컴포넌트의 밑줄 제거방법문의 [3] 김태윤 2016.12.07 471
436 ios 한글이 깨집니다. (같은 환경에서 안드로이드는 잘 됩니다) file 어려워 2016.07.14 473
435 [MACOS] TEdit에서 엔터키 입력시 비프음 발생 [1] 라운지 2015.09.30 473
434 DATASNAP 사용 시 macOS에서 한글깨짐 문제 [1] file 8585 2020.12.29 473
433 listview Data 뿌려주거나 클릭 시 EvalError 발생. [4] file 엔달 2018.09.27 475