안녕하세요.
안드로이드에서 intent를 사용한 공유가 제대로 되지 않습니다.
파일 첨부 시 ‘파일을 불러오는 데 실패하였습니다’ 라는 문구가 나오거나,
계속해서 파일 전송에 실패한다고 합니다.
기기는 SM-M380 (삼성 갤럭시 탭 10.1) 이고 OS 버전은 4.0.4입니다.
카카오톡에서 4.4미만 버전은 지원이 종료되었다고 알고 있는데, 그 이유에서일까요?
아래는 해당하는 부분의 코드입니다.
public static Intent getShareIntent(Context ctx, ArrayList<File> fileList) {
ArrayList<Uri> files = new ArrayList<Uri>();
for(int i=0;i<fileList.size();i++) {
Uri fileUri = CUtil.getURIFromFile(ctx, fileList.get(i));
files.add(fileUri);
}
final Intent shareIntent = new Intent();
shareIntent.putExtra("EXTRA_SUBJECT", new SimpleDateFormat("yyyyMMdd_테스트").format(new Date(System.currentTimeMillis())));
if(fileList.size() == 1){
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, files.get(0));
}else{
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putExtra(Intent.EXTRA_STREAM, files);
}
boolean isImageContains = false;
boolean isPDFContains = false;
String[] imgExtension = new String[] {".jpg", ".jpeg", ".png", ".gif"};
String pdfExtension = ".pdf";
for(int i=0;i<fileList.size();i++){
if(!isImageContains){
for(String extension : imgExtension){
if(fileList.get(i).getName().endsWith(extension)){
isImageContains = true;
}
}
}
if(!isPDFContains){
if(fileList.get(i).getName().endsWith(pdfExtension)){
isPDFContains = true;
}
}
if(isImageContains && isPDFContains){
break;
}
}
StringBuilder dataType = new StringBuilder();
if(isImageContains){
dataType.append("image/*");
}
if(dataType.length() > 0){
dataType.append("|");
}
if(isPDFContains){
dataType.append("application/pdf");
}
shareIntent.setType(dataType.toString());
return shareIntent;
}