当前位置: 首页 > 编程笔记 >

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

茹展鹏
2023-03-14
本文向大家介绍Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】,包括了Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android操作json格式数据技巧总结》、《Android资源操作技巧汇总》及《Android控件用法总结》

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

 类似资料:
  • 本文向大家介绍iOS开发实现音频播放功能,包括了iOS开发实现音频播放功能的使用技巧和注意事项,需要的朋友参考一下 音频播放 1、介绍  - 功能介绍  用于播放比较长的音频、说明、音乐 ,使用到的是AVFoundation  - 框架介绍  * AVAudioPlayer  * 初始化:  注意 : (3)必须声明全局变量的音乐播放对象、或者是属性的音乐播放对象  才可以播放 (4)在退出播放页

  • 本文向大家介绍python+opencv打开摄像头,保存视频、拍照功能的实现方法,包括了python+opencv打开摄像头,保存视频、拍照功能的实现方法的使用技巧和注意事项,需要的朋友参考一下 以下代码是保存视频 以下代码是拍照,在按q之后,保存图片并退出。 以上这篇python+opencv打开摄像头,保存视频、拍照功能的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家

  • 本文向大家介绍Thinkphp5框架实现图片、音频和视频文件的上传功能详解,包括了Thinkphp5框架实现图片、音频和视频文件的上传功能详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Thinkphp5框架实现图片、音频和视频文件的上传功能。分享给大家供大家参考,具体如下: 首先是同步上传,最为基础的上传的方式,点击表单提交之后跳转那种。如下前端代码 注意这里的enctype必须en

  • 本文向大家介绍Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能,包括了Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Vue2.0实现调用摄像头进行拍照功能的具体代码,以及图片上传功能引用exif.js,供大家参考,具体内容如下 可以在github 上下载demo链接 vue组件代码 引用的e

  • 本文向大家介绍Android 自定义ListView实现QQ空间界面(说说内包含图片、视频、点赞、评论、转发功能),包括了Android 自定义ListView实现QQ空间界面(说说内包含图片、视频、点赞、评论、转发功能)的使用技巧和注意事项,需要的朋友参考一下 前端时间刚好需要做一个类似于QQ空间的社区分享功能,说说内容包含文字(话题、内容)、视频、图片,还需包含点赞,评论,位置信息等功能。 就

  • 一个播放器功能,现在需求将视频播放修改为播放图片。 我试过直接替换路径,但是图片加载需要时间,有些时候就会在图片还没有加载完成就调到下一章图片了,出现黑屏现象,因此需要图片提前加载几张才行,有什么方法可以解觉这个问题,或者有什么开源组件可以实现播放图片的功能