Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】

作者:LovooGod 时间:2023-05-27 23:58:01 

本文实例讲述了Android开发实现的IntentUtil跳转多功能工具类。分享给大家供大家参考,具体如下:

说明:此工具类是本人开发中总结下来的,还有其它的跳转亲给我留言,希望大家一起把这个工具类打造成最全的跳转工具,谢谢!


package com.android.chat.utils;
import java.io.File;
import java.io.Serializable;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.app.FragmentActivity;
import android.view.View;
/**
* @描述 intent常用工具类
* @项目名称 AppClient
* @包名 com.andorid.main.basic.aboutActivity
* @类名 IntentUtils
* @author chenlin
* @date 2012年6月25日 上午8:08:55
* @version 1.0
*/
public class IntentUtils {
 public static final int REQUEST_CODE_GALLERY = 0x11;
 public static final int REQUEST_CODE_CAMERA = 0x12;
 public final static int REQUEST_CODE_CROP = 0x13;
 /**
  * 打电话
  *
  * @param context
  * @param phoneNum
  */
 public static void call(Context context, int phoneNum) {
   Intent intent = new Intent();
   // 启动电话程序
   intent.setAction(Intent.ACTION_CALL);
   intent.setData(Uri.parse("tel://" + phoneNum));
   context.startActivity(intent);
 }
 /**
  * 打开浏览器
  *
  * @param context
  * @param url
  */
 public static void openBrowser(Context context, String url) {
   Intent intent = new Intent();
   intent.setAction(Intent.ACTION_VIEW);
   intent.setData(Uri.parse(url));
   context.startActivity(intent);
 }
 /**
  * 打开图片
  *
  * @param context
  * @param url
  */
 public static void openImage(Context context, String path) {
   Intent intent = new Intent();
   intent.setAction(Intent.ACTION_VIEW);
   // intent.setDataAndType(Uri.parse("file:///mnt/sdcard/file/1.jgp"),
   // "image/*");
   intent.setDataAndType(Uri.parse("file:///" + path), "image/*");
   context.startActivity(intent);
 }
 /**
  * 打开音频
  *
  * @param context
  * @param url
  */
 public static void openAudio(Context context, String path) {
   Intent intent = new Intent();
   intent.setAction(Intent.ACTION_VIEW);
   intent.setDataAndType(Uri.parse("file:///" + path), "audio/*");
   context.startActivity(intent);
 }
 /**
  * 打开视频文件
  *
  * @param context
  * @param url
  */
 public static void openVideo(Context context, String path) {
   Intent intent = new Intent();
   intent.setAction(Intent.ACTION_VIEW);
   intent.setDataAndType(Uri.parse("file:///" + path), "video/*");
   context.startActivity(intent);
 }
 /**
  * 打开系统摄像头录像,并保存为图片
  *
  * @param context
  * @param path
  */
 public static void openCamera(Context context, String path) {
   Intent intent = new Intent();
   intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
   intent.putExtra(MediaStore.EXTRA_OUTPUT,
       Uri.parse(Environment.getExternalStorageDirectory() + "/Videos/" + System.currentTimeMillis() + ".jpg"));
   context.startActivity(intent);
 }
 /**
  * 打开系统摄像头录像,并保存为视频
  *
  * @param context
  * @param path
  */
 public static void openCamera(Context context) {
   Intent intent = new Intent();
   intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
   intent.putExtra(MediaStore.EXTRA_OUTPUT,
       Uri.parse(Environment.getExternalStorageDirectory() + "/Videos/" + System.currentTimeMillis() + ".mp4"));
   context.startActivity(intent);
 }
 /**
  * 分享
  */
 public static void shareApplication(Context context, String packname, String url) {
   // <action android:name="android.intent.action.SEND" />
   // <category android:name="android.intent.category.DEFAULT" />
   // <data android:mimeType="text/plain" />
   Intent intent = new Intent();
   intent.setAction("android.intent.action.SEND");
   intent.addCategory("android.intent.category.DEFAULT");
   intent.setType("text/plain");
   /*
    * intent.putExtra(Intent.EXTRA_TEXT,
    * "推荐您使用一款软件,下载地址为:https://play.google.com/store/apps/details?id=" +
    * packname);
    */
   intent.putExtra(Intent.EXTRA_TEXT, "推荐您使用一款软件,下载地址为:" + url + " ?id=" + packname);
   context.startActivity(intent);
 }
 /**
  * 发送对像
  *
  * @param view
  */
 public static <T extends Serializable> void sendData(Context context, T t) {
   Intent intent = new Intent(context, t.getClass());
   intent.putExtra(t.getClass().getSimpleName(), t);// 要传递对像,对像必须是经过序列化的
   context.startActivity(intent);
 }
 /**
  * 获取对像
  *
  * @param view
  */
 public static <T extends Serializable> T getData(Activity context, View view) {
   return (T) context.getIntent().getSerializableExtra("account");
 }
 /**
  * 安装文件s
  *
  * @param context
  * @param apkFile
  */
 public static void installApp(Context context, File apkFile) {
   Intent intent = new Intent();
   intent.setAction("android.intent.action.VIEW");
   intent.addCategory("android.intent.category.DEFAULT");
   intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
   context.startActivity(intent);
 }
 /**
  * 卸载
  *
  * @param context
  * @param apkFile
  */
 public static void unInstallApp(Context context, File apkFile) {
   Uri packageURI = Uri.parse("package:com.andorid.main");
   Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
   context.startActivity(uninstallIntent);
 }
 /**
  * 获得裁剪的图片从图片集合里
  * @param context
  * @param sdcardTempFile
  * @param crop
  */
 public static void getimageFromGallery(Activity context, File sdcardTempFile, int crop) {
   Intent intent = new Intent("android.intent.action.PICK");
   intent.setDataAndType(MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*");
   intent.putExtra("output", Uri.fromFile(sdcardTempFile));
   intent.putExtra("crop", "true");
   intent.putExtra("aspectX", 1);// 裁剪框 intent.putExtra("aspectY", 1);
   intent.putExtra("outputX", crop);// 输出图片大小
   intent.putExtra("outputY", crop);
   context.startActivityForResult(intent, REQUEST_CODE_GALLERY);
 }
 /**
  * 获得裁剪的图片从Camera里
  * @param context
  * @param sdcardTempFile
  * @param crop
  */
 public static void getimageFromCamera(Activity context, File sdcardTempFile, int crop) {
   Uri uri = Uri.fromFile(sdcardTempFile);
   Intent intent = new Intent("com.android.camera.action.CROP");
   intent.setDataAndType(uri, "image/*");
   intent.putExtra("output", uri);
   intent.putExtra("crop", "true");
   intent.putExtra("aspectX", 1);// 裁剪框比�? intent.putExtra("aspectY",
                   // 1);
   intent.putExtra("outputX", crop);// 输出图片大小
   intent.putExtra("outputY", crop);
   context.startActivityForResult(intent, REQUEST_CODE_CROP);
 }
 /**
  * 获得裁剪的图片从摄像头
  * @param context
  * @param sdcardTempFile
  * @param crop
  */
 public static void getImageFromCamera(Activity context, File sdcardTempFile) {
   Uri uri = Uri.fromFile(sdcardTempFile);
   Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
   intent.putExtra("output", uri);
   context.startActivityForResult(intent, REQUEST_CODE_CAMERA);
 }
}

希望本文所述对大家Android程序设计有所帮助。

来源:http://blog.csdn.net/lovoo/article/details/51757030

标签:Android,IntentUtil,工具类
0
投稿

猜你喜欢

  • Android xUtils更新到3.0后的基本使用规则详解

    2023-02-07 23:14:39
  • 鸿蒙开源第三方组件之连续滚动图像组件功能

    2023-02-21 06:34:44
  • C#隐藏手机号、邮箱等敏感信息的实现方法

    2023-12-08 17:17:45
  • 浅谈Springboot下引入mybatis遇到的坑点

    2023-09-09 05:55:09
  • 快速解决Android适配底部返回键等虚拟键盘的问题

    2021-10-25 14:50:23
  • Java中i++的一些问题总结

    2022-04-11 18:07:34
  • spring boot如何实现切割分片上传

    2023-06-29 02:49:26
  • Java流程控制之选择结构

    2021-10-24 08:12:50
  • Java源码解析LinkedList

    2023-04-28 02:56:18
  • Java根据ip地址获取归属地实例详解

    2023-11-25 06:24:38
  • 从java源码分析线程池(池化技术)的实现原理

    2021-12-24 00:01:24
  • 如何创建SpringBoot项目

    2022-03-26 16:06:37
  • C#命令模式用法实例

    2021-10-21 12:46:02
  • Unity实现攻击范围检测并绘制检测区域

    2023-09-18 21:59:10
  • springBoot @Scheduled实现多个任务同时开始执行

    2023-06-19 23:16:41
  • Android优化之电量优化的实现

    2023-08-20 07:57:25
  • c#中LINQ的基本用法(二)

    2022-05-29 07:00:43
  • 深入分析c# 继承

    2023-02-18 21:36:31
  • Java设计模式初识之备忘录模式详解

    2023-08-29 23:27:09
  • Java日常练习题,每天进步一点点(3)

    2023-07-12 14:24:14
  • asp之家 软件编程 m.aspxhome.com