欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-10-19 08:27:24
本文实例讲述了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程序设计有所帮助。