마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

파일을 원하는 패키지명으로 연결하고싶은데 도와주세요 ㅠㅠ

0 추천

안녕하세요.

안드로이드 개발을 하다가

웹뷰에서 파일을 다운로드 받은 후에 바로 실행하게끔 하는데

한컴오피스viewer로 연결하려고합니다.

그런데 다른 뷰어들도 선택할 수 있게 "실행파일을 선택해 주세요"라며 chooser가 뜨는데

패키지명으로 제가 다운 받은 파일을 바로 연결 할 수 없나요..? ㅠㅠ

다운 받은 확장자를 통해 바로 연결하게 하려고 하는데

com.tf.thinkdroid.viewer = 패키지명

com.tf.thinkdroid.manager.StartActivity = 클래스명

 

//한컴 뷰어로만 바로 실행하게
            else if (fileExtend.equalsIgnoreCase("hwp")
                    || fileExtend.equalsIgnoreCase("ppt") || fileExtend.equalsIgnoreCase("pptx")
                    || fileExtend.equalsIgnoreCase("xls") || fileExtend.equalsIgnoreCase("xlsx")
                    || fileExtend.equalsIgnoreCase("doc") || fileExtend.equalsIgnoreCase("docx")
                    || fileExtend.equalsIgnoreCase("pdf")
                    || fileExtend.equalsIgnoreCase("txt")
                    ) {

//                fileLinkIntent.setDataAndType(Uri.fromFile(file), "application/com.tf.thinkdroid.viewer");
                fileLinkIntent.setDataAndType(Uri.fromFile(file), "com.tf.thinkdroid.viewer/com.tf.thinkdroid.manager.StartActivity");

            }

 

도와주시면 감사하겠습니다.. ㅠ

 

mContext.startActivity(Intent.createChooser(fileLinkIntent, "실행파일을 선택해 주세요."));

이렇게 createChooser를 사용했을때, 선택창이 뜨는줄 알았는데 어떻게 해야할까요..

구시포 (2,750 포인트) 님이 2017년 12월 5일 질문
사용자에게 선택권을 주는게 안드로이드 정책이라서 안됩니다.

1개의 답변

0 추천
익명사용자 님이 2017년 12월 5일 답변
getLaunchIntentForPackage를 사용해서 해보았는데
다운로드 받은 파일이 바로 실행이 되지 않고, 앱자체가 실행이 됩니다.
혹시 파일명을 연결해서 사용할수있는 예제나 구현방법을 아시면 부탁드려요
setDataAndType  로 파일 경로를 넘겨주셨으니,
어플의 시작 Activity에서  getDataString 로 설정한 경로를 구할 수 있습니다.
이 경로 가지고 어플에서 분기하게 해주시면 됩니다.
@Override
    public void onCreate(Bundle savedInstanceState)

Intent intent = getIntent();
String filePath  = intent.getDataString();
if(filePath ==null) {
  // 기존대로 어플 실행만 수행
} else {
  // 해당 파일명을 연결해서 사용하도록 어플 구현
}
}
...