program tip

Android의 여러 MIME 유형

radiobox 2020. 11. 11. 19:41
반응형

Android의 여러 MIME 유형


intent.setType()다양한 유형 (이미지 비디오 등) 을 사용 하고 제공 하는 방법이 있습니까?

나는 ACTION_GET_CONTENT. 쉼표로 구분 된 유형으로 만 작동하는 것 같습니다.


Android 4.4에서는 Storage Access Framework 를 사용할 때 EXTRA_MIME_TYPES사용하여 여러 MIME 유형을 전달할 수 있습니다.

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
String[] mimetypes = {"image/*", "video/*"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
startActivityForResult(intent, REQUEST_CODE_OPEN);

실제로 여러 MIME 유형이 지원됩니다. 당신은 그것을 시도 했습니까 ???

예 : intent.setType("image/*,video/*")사진과 동영상을 표시합니다 ...

나를 위해 그것은 작동합니다. 그것은 당신에게도 효과가있을 것입니다 ...

[편집] : 일부 갤러리 앱이 여러 MIME 유형 필터에 대한 지원을 구현하도록 선택하는 것은 아니기 때문에 부분적으로 작동합니다.


나에게 가장 효과적인 것은 다음과 같습니다.

intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);


이와 같은 여러 MIME 유형을 추가 할 수 있습니다.

intent.setType("image/*|application/pdf|audio/*");

그러나 인 텐트 선택기는 MIME 유형 문자열에서 첫 번째이기 때문에 이미지를 처리 ​​할 수있는 애플리케이션 만 표시합니다.

그러나 파일 관리자가 설치되어있는 경우 (CyanogenMod 파일 관리자로 테스트했습니다) 오디오 또는 pdf 또는 이미지 파일을 선택할 수 있습니다.

다음과 같이 오디오 MIME 유형이 첫 번째 유형 인 경우 :

intent.setType("audio/*|image/*|application/pdf");

의도 선택기는 오디오를 처리하는 응용 프로그램 만 표시합니다.
다시 파일 관리자를 사용하여 이미지, pdf 또는 오디오를 선택할 수 있습니다.


죄송합니다. 현재 지원되지 않습니다. 두 가지 옵션이 있습니다.

(1) MIME 유형을 사용 */*하고 사용자가 선택할 수 있지만 처리 할 수없는 항목이있을 수 있음을 수락합니다 (그리고 적절한 복구 경로가 있음). 또는

(2) 패키지 관리자에서 직접 호출을 수행하여 의도에 대해 두 MIME 유형을 모두 처리 할 수있는 활동을 가져오고 이러한 목록을 병합하고 사용자에게 표시합니다.

또한 setType()쉼표로 구분 된 유형에서는 전혀 작동하지 않습니다. 하나의 MIME 유형이어야합니다.


|로 분리하면 여러 MIME 유형을 전달할 수 있습니다.

Intent.setType("application/*|text/*");

세미콜론 작업을 위해.

예:

intent.setType("image/*;video/*")

또는

sIntent.putExtra("CONTENT_TYPE", "image/*;video/*"); 

참고 URL : https://stackoverflow.com/questions/1698050/multiple-mime-types-in-android

반응형