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程序设计有所帮助。

时间: 2024-09-27 05:32:53

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

Android开发实现的Intent跳转工具类实例

本文实例讲述了Android开发实现的Intent跳转工具类.分享给大家供大家参考,具体如下: 一.概述 Intent的中文意思是"意图,意向",在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用.Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之

Android开发中Activity创建跳转及传值的方法_Android

在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider). 今天所介绍的就是Android开发中的四大组件之一:Activity,其他那三大组件以后再进行介绍.说道Android中的Activity,如果你做过iOS开发的话,Activity类似于iOS中的ViewController(视图控制器).在应用中能看到的东西都是放在活动中的.活动是安卓开发比较重要的东

界面跳转-android 开发中界面的跳转

问题描述 android 开发中界面的跳转 我想设置一个监听器直接跳到android模拟器自带的无线和网络设置(Wireless&networks)界面,请大神帮个忙 解决方案 Intent wifiSettingsIntent = new Intent("android.settings.WIFI_SETTINGS"); startActivity(wifiSettingsIntent); 监听可以参考如下:http://blog.sina.com.cn/s/blog_67d

我的Android进阶之旅------&amp;gt;Android关于dp(dip)、sp转px的工具类

下面是一个工具类,提供了dp.sp.px之间相互转化的方法. import android.content.Context; /** * dp.sp 转换为 px 的工具类<br> * <a href="http://blog.csdn.net/ouyang_peng">CSDN OuyangPeng</a> */ public class DisplayUtil { /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ publ

数据-Android Main方法里面有个变量,在工具类里面怎么调用呢

问题描述 Android Main方法里面有个变量,在工具类里面怎么调用呢 Android Main方法里面有个变量,在工具类里面怎么调用呢. new MainActivity().uid 这样调用的话会不会对数据有影响? uid 是public.除了new MainActivity 还可以怎么调 解决方案 做成public static的,这样通过 MainActivity.xxx就可以访问 解决方案二: Android在Adapter里面调用Activity的方法/变量Android在Ada

android开发-java全局变量的问题,咋存储每个类中都有可能用到的数据

问题描述 java全局变量的问题,咋存储每个类中都有可能用到的数据 大家都说全局变量不好.我有个问题:android开发.当用户登录了, 用户名,头像,...这些信息应该放到什么地方合适? 这些数据每个类中都有可能用到. 来电代码解释解释. 求高手 解决方案 哎呦,又要存到SharePreferences里面, 东西太多了吧 解决方案二: 推荐将用户基本信息保存使用SharePreferences,然后创建一个JavaBean解析保存的xml数据,通过调用get方法判断是否登录用户信息,钊林IT

Android开发之多媒体文件获取工具类实例【音频,视频,图片等】

本文实例讲述了Android开发之多媒体文件获取工具类.分享给大家供大家参考,具体如下: package com.android.ocr.util; import java.io.File; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.database.Cursor; import android.graphics.Bitmap; import

Android代码优化----Application节点的模板写法及UI工具类

一. MyApplication类的编写: 新建一个类MyApplication,继承自Application.代码如下: MyApplication.java: 1 package com.smyhvae.homepicdemo; 2 3 import android.app.Application; 4 import android.os.Handler; 5 import android.os.Looper; 6 7 /** 8 * Created by smyhvae on 2015/5

Android开发10——Activity的跳转与传值_显示意图(intent)的应用

Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据. intent可以激活Activity,服务,广播三类组件. 本博文讲的是显示意图激活Activity组件.所谓显示意图就是在activity的激活时,显示指出了需要激活的activity的名字.   一.Activity跳转 方法一 Intent intent = new Intent(A.this, B.class);  startActivity(intent)   方法二 Intent inte