《Intent相关的工具类》
来源:互联网 发布:directx for windows 编辑:程序博客网 时间:2024/06/06 20:27
/** * * @author laizhen create time:2017-6-14上午12:24:14 */public final class IntentUtil { /** * Activity之间跳转 * * @param context * @param cls */ public static void startActivity(Context context, Class<?> cls) { startActivity(context, cls, null); } /** * Activity之间跳转 * * @param context * @param cls * @param extras */ public static void startActivity(Context context, Class<?> cls, Bundle extras) { Intent intent = new Intent(); intent.setClass(context, cls); if (extras != null) { intent.putExtras(extras); } context.startActivity(intent); } /** * Activity之间跳转 * * @param activity * @param cls * @param extras */ public static void startActivityForResult(Activity activity, Class<?> cls, int requestCode, Bundle extras) { Intent intent = new Intent(); intent.setClass(activity, cls); if (extras != null) { intent.putExtras(extras); } activity.startActivityForResult(intent, requestCode); activity.overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out); } /** * 获取打系统浏览器Intent * * @return */ public static Intent getSystemBrowserIntent(String url) { Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url)); return intent; } /** * 获取打电话Intent * * @param phoneNum * 电话号码 * @return */ public static Intent getCallIntent(String phoneNum) { Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNum)); return intent; } /** * 跳转到打电话界面 * * @param phoneNum * @return */ public static Intent getDialIntent(String phoneNum) { Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNum)); return intent; } /** * 获取启动相机的Intent对象 * * @return */ public static Intent getOpenCameraIntent() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); return intent; } public static Intent getOpenCameraIntent(Uri uri) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0.75); // 默认设置为高质量的图片:1-0质量一直递减 return intent; } /** * 获取打开相册的Intent对象 * * @return */ public static Intent getOpenAlbumIntent() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); return intent; } /** * 获取裁剪图片的Intent对象,裁剪后的图片大小为110px*100px * * @param uri * @return */ public static Intent getCropImageIntent(Uri uri) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); intent.putExtra("crop", "true"); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("outputX", 110); intent.putExtra("outputY", 110); intent.putExtra("return-data", true); return intent; } /** * 获取裁剪图片的Intent对象,裁剪后的图片大小为110px*100px * * @param data * @return */ public static Intent getCropImageIntent(Bitmap data) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setType("image/*"); intent.putExtra("data", data); intent.putExtra("crop", "true"); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("outputX", 110); intent.putExtra("outputY", 110); intent.putExtra("return-data", true); return intent; } /** * 获取安装APK的Intent * * @param uri * @return */ public static Intent getInstallAPKIntent(Uri uri) { Intent installIntent = new Intent(Intent.ACTION_VIEW); installIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 新开辟一个栈 installIntent.setDataAndType(uri, "application/vnd.android.package-archive"); return installIntent; } /** * 打开系统相册浏览照片 * * @param uri * @return */ public static Intent getBrowsePictureIntent(Uri uri) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(uri, "image/*"); return intent; } /** * 打开文件通用方法 * * @param filePath * @return */ public static Intent openFile(String filePath) { File file = new File(filePath); if (!file.exists()) return null; /* 取得扩展名 */ String end = file .getName() .substring(file.getName().lastIndexOf(".") + 1, file.getName().length()).toLowerCase(); /* 依扩展名的类型决定MimeType */ if (end.equals("m4a") || end.equals("mp3") || end.equals("mid") || end.equals("xmf") || end.equals("ogg") || end.equals("wav")) { return getAudioFileIntent(filePath); } else if (end.equals("3gp") || end.equals("mp4")) { return getAudioFileIntent(filePath); } else if (end.equals("jpg") || end.equals("gif") || end.equals("png") || end.equals("jpeg") || end.equals("bmp")) { return getImageFileIntent(filePath); } else if (end.equals("apk")) { return getApkFileIntent(filePath); } else if (end.equals("ppt")) { return getPptFileIntent(filePath); } else if (end.equals("xls")) { return getExcelFileIntent(filePath); } else if (end.equals("doc")) { return getWordFileIntent(filePath); } else if (end.equals("pdf")) { return getPdfFileIntent(filePath); } else if (end.equals("chm")) { return getChmFileIntent(filePath); } else if (end.equals("txt")) { return getTextFileIntent(filePath, false); } else { return getAllIntent(filePath); } } /** * Android获取一个用于打开APK文件的intent */ public static Intent getAllIntent(String param) { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(new File(param)); intent.setDataAndType(uri, "*/*"); return intent; } /** * Android获取一个用于打开APK文件的intent * * @param param * @return */ public static Intent getApkFileIntent(String param) { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(new File(param)); intent.setDataAndType(uri, "application/vnd.android.package-archive"); return intent; } /** * Android获取一个用于打开VIDEO文件的intent * * @param param * @return */ public static Intent getVideoFileIntent(String param) { Intent intent = new Intent("android.intent.action.VIEW"); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("oneshot", 0); intent.putExtra("configchange", 0); Uri uri = Uri.fromFile(new File(param)); intent.setDataAndType(uri, "video/*"); return intent; } /** * Android获取一个用于打开AUDIO文件的intent * * @param param * @return */ public static Intent getAudioFileIntent(String param) { Intent intent = new Intent("android.intent.action.VIEW"); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("oneshot", 0); intent.putExtra("configchange", 0); Uri uri = Uri.fromFile(new File(param)); intent.setDataAndType(uri, "audio/*"); return intent; } /** * Android获取一个用于打开Html文件的intent * * @param param * @return */ public static Intent getHtmlFileIntent(String param) { Uri uri = Uri.parse(param).buildUpon() .encodedAuthority("com.android.htmlfileprovider") .scheme("content").encodedPath(param).build(); Intent intent = new Intent("android.intent.action.VIEW"); intent.setDataAndType(uri, "text/html"); return intent; } /** * Android获取一个用于打开图片文件的intent * * @param param * @return */ public static Intent getImageFileIntent(String param) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.fromFile(new File(param)); intent.setDataAndType(uri, "image/*"); return intent; } /** * Android获取一个用于打开PPT文件的intent * * @param param * @return */ public static Intent getPptFileIntent(String param) { Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.fromFile(new File(param)); intent.setDataAndType(uri, "application/vnd.ms-powerpoint"); return intent; } /** * Android获取一个用于打开Excel文件的intent * * @param param * @return */ public static Intent getExcelFileIntent(String param) { Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.fromFile(new File(param)); intent.setDataAndType(uri, "application/vnd.ms-excel"); return intent; } /** * Android获取一个用于打开Word文件的intent * * @param param * @return */ public static Intent getWordFileIntent(String param) { Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.fromFile(new File(param)); intent.setDataAndType(uri, "application/msword"); return intent; } /** * Android获取一个用于打开CHM文件的intent * * @param param * @return */ public static Intent getChmFileIntent(String param) { Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.fromFile(new File(param)); intent.setDataAndType(uri, "application/x-chm"); return intent; } /** * Android获取一个用于打开文本文件的intent * * @param param * @param paramBoolean * @return */ public static Intent getTextFileIntent(String param, boolean paramBoolean) { Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (paramBoolean) { Uri uri1 = Uri.parse(param); intent.setDataAndType(uri1, "text/plain"); } else { Uri uri2 = Uri.fromFile(new File(param)); intent.setDataAndType(uri2, "text/plain"); } return intent; } /** * Android获取一个用于打开PDF文件的intent * * @param param * @return */ public static Intent getPdfFileIntent(String param) { Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.fromFile(new File(param)); intent.setDataAndType(uri, "application/pdf"); return intent; } /** * 分享文本到系统应用 * * @return */ public static void shareTextToSystem(Context context, String title, String text) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, title); intent.putExtra(Intent.EXTRA_TEXT, title + " " + text); context.startActivity(Intent.createChooser(intent, title)); } /** * 分享图片到系统应用 * * @return */ public static void shareImageToSystem(Context context, String title, String url) { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); intent.putExtra("crop", "true"); intent.putExtra("output", Uri.fromFile(new File(url))); intent.putExtra("outputFormat", "JPEG"); context.startActivity(Intent.createChooser(intent, title)); } /** * 包名 * * @param appPackageName */ public static void startAPP(Context context, String appPackageName) { try { Intent intent = context.getPackageManager() .getLaunchIntentForPackage(appPackageName); context.startActivity(intent); } catch (Exception e) { Toast.makeText(context, "没有安装", Toast.LENGTH_LONG).show(); } } /** * 包名 * * @param appPackageName *//* public static void startAPP(Context context, String appPackageName, int result, String token) { try { ComponentName componentName = new ComponentName(appPackageName, "com.liveaa.yifudao.MainActivity"); Intent intent = new Intent(); intent.setComponent(componentName); intent.putExtra("result", result); intent.putExtra("token", token); context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } }*/ public static void startAPP(Context context, String appPackageName, int result, String token) { try { Log.d("FFFFF", "appPackageName:" + appPackageName); Intent intent = context.getPackageManager() .getLaunchIntentForPackage(appPackageName); intent.putExtra("result", result); intent.putExtra("token", token); context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } } /** * 包名 * * @param appPackageName */ public static void startAPP(Context context, String appPackageName, String startActivity, String userId, String areaId ) { try { Intent intent = new Intent(); intent.putExtra("userId", userId); intent.putExtra("areaId", areaId); ComponentName comp = new ComponentName(appPackageName,startActivity); intent.setComponent(comp); intent.setAction("android.intent.action.LAUNCHER"); context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } } /** * 包名 * * @param appPackageName */ public static void startAPP(Context context, String appPackageName, String startActivity, int result, String token) { try { Intent intent = new Intent(); intent.putExtra("result", result); intent.putExtra("token", token); ComponentName comp = new ComponentName(appPackageName, startActivity); intent.setComponent(comp); intent.setAction("android.intent.action.LAUNCHER"); context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } } /** * 包名 * * @param appPackageName */ public static void startAPPType8(Context context, String appPackageName, String startActivity, int result, String token, String circleId) { try { Intent intent = new Intent(); intent.putExtra("result", result); intent.putExtra("type", "8"); intent.putExtra("token", token); intent.putExtra("circleId", circleId); ComponentName comp = new ComponentName(appPackageName, startActivity); intent.setComponent(comp); intent.setAction("android.intent.action.LAUNCHER"); context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } } /** * 包名 * * @param appPackageName */ public static void startAPPType(Context context, String appPackageName, String startActivity, int result, String type, String token, String circleId) { try { Intent intent = new Intent(); intent.putExtra("result", result); intent.putExtra("type", type); intent.putExtra("token", token); if (type.equals("8")) { intent.putExtra("circleId", circleId); } else { intent.putExtra("postId", circleId); } ComponentName comp = new ComponentName(appPackageName, startActivity); intent.setComponent(comp); intent.setAction("android.intent.action.LAUNCHER"); context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } } /** * 包名 * * @param appPackageName */ public static boolean haveInstallApp(Context context, String appPackageName) { PackageInfo packageInfo = null; try { packageInfo = context.getPackageManager().getPackageInfo(appPackageName, 0); return true; } catch (NameNotFoundException e) { return false; } } /** * 包名 * */ public static boolean haveInstallApp2(Context context, String uri) { PackageInfo packageInfo = null; Intent intent = new Intent(); Uri muri = Uri.parse (uri); intent.setData(muri); if (context.getPackageManager().resolveActivity(intent, 0) == null) { return false; } return true; } public static boolean isRunning(Context context, String packageName) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> list = am.getRunningAppProcesses(); for (RunningAppProcessInfo appProcess : list) { String processName = appProcess.processName; if (processName != null && processName.equals(packageName)) { return true; } } return false; }}
阅读全文
1 0
- 《Intent相关的工具类》
- intent的相关
- intent的整合工具
- Intent跳转工具类
- Intent工具类
- Intent跳转工具类
- FileStorge相关的几个intent
- 网络相关的工具类
- App相关的工具类
- 网络相关的工具类
- 线程相关的工具类
- 日期相关的工具类
- jsoup相关的工具类
- 数字相关的工具类
- Android intent跳转工具类
- 十四个Uri-Intent相关的
- android Intent的相关Flag说明
- 总结下Android相关的Intent启动
- 一款微信小程序项目的开发过程全解析
- java execute、executeQuery和executeUpdate之间的区别
- java对象的强引用,软引用,弱引用和虚引用
- 关于学习二叉搜索树的心得体会
- 微信小程序之https步骤一
- 《Intent相关的工具类》
- MySQL不能启动 Can't start server : Bind on unix socket: Permission denied
- 均匀分布(uniform distribution)期望的最大似然估计(maximum likelihood estimation)
- webpack构建React应用二:webpack的安装及基础使用
- jeecg {"empty":false,"reference":true,"viewName":"org/jeecgframework/web/crm/haTSubscription/messag
- [线段树][矩乘][DP]Codeforces Round 573D && RussianCodeCup Thanks-Round .Bear and Cavalry
- CDialog中创建CView窗口
- 剑指offer:第8题旋转数组的最小数字
- babel入门和那些坑