 |
|
|  |
| [안드로이드]파일 연결 - Intent setDataAndType(Uri , MimeType) |
|
|
 |
10년 전 |
/**
* 파일의 확장자 조회
*
* @param fileStr
* @return
*/
public static String getExtension(String fileStr) {
return fileStr.substring(fileStr.lastIndexOf(".") + 1, fileStr.length());
}
/**
* Viewer로 연결
*
* @param ctx
* @param filePath
* @param fileName
*/
public static void viewFile(Context ctx, String filePath, String fileName) {
// TODO Auto-generated method stub
Intent fileLinkIntent = new Intent(Intent.ACTION_VIEW);
fileLinkIntent.addCategory(Intent.CATEGORY_DEFAULT);
File file = new File(filePath, fileName);
Uri uri = Uri.fromFile(file);
//확장자 구하기
String fileExtend = getExtension(file.getAbsolutePath());
// 파일 확장자 별로 mime type 지정해 준다.
if (fileExtend.equalsIgnoreCase("mp3")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "audio/*");
} else if (fileExtend.equalsIgnoreCase("mp4")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "vidio/*");
} else if (fileExtend.equalsIgnoreCase("jpg")
|| fileExtend.equalsIgnoreCase("jpeg")
|| fileExtend.equalsIgnoreCase("gif")
|| fileExtend.equalsIgnoreCase("png")
|| fileExtend.equalsIgnoreCase("bmp")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "image/*");
} else if (fileExtend.equalsIgnoreCase("txt")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "text/*");
} else if (fileExtend.equalsIgnoreCase("doc")
|| fileExtend.equalsIgnoreCase("docx")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "application/msword");
} else if (fileExtend.equalsIgnoreCase("xls")
|| fileExtend.equalsIgnoreCase("xlsx")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file),
"application/vnd.ms-excel");
} else if (fileExtend.equalsIgnoreCase("ppt")
|| fileExtend.equalsIgnoreCase("pptx")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file),
"application/vnd.ms-powerpoint");
} else if (fileExtend.equalsIgnoreCase("pdf")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "application/pdf");
} else if (fileExtend.equalsIgnoreCase("hwp")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file),
"application/haansofthwp");
}
PackageManager pm = ctx.getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(fileLinkIntent,
PackageManager.GET_META_DATA);
if (list.size() == 0) {
Toast.makeText(ctx, fileName + "을 확인할 수 있는 앱이 설치되지 않았습니다.",
Toast.LENGTH_SHORT).show();
} else {
ctx.startActivity(fileLinkIntent);
}
} |
|
추천 : 596 |
추천
목록
|
|
|  |
|