Android开发实现的IntentUtil跳转多功能工具类
时间:2022-07-28
本文章向大家介绍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程序设计有所帮助。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- IDEA 真香!找出全部未被使用的代码只用了 2 秒钟!
- ArrayList 插入 1000w 条数据之后,我怀疑了 Java 虚拟机。。。
- 本地存储应用案例 ToDoList
- jQuery 插件
- 本周AI热点回顾:RTX3080被黄牛炒上天;百度资本助力AI 制药,已有十几位博士加入;百度联手打造AI沉浸互动展中国首秀
- 线段树
- 乘法表中第k小的数
- 数据可视化 | Pandas vs Plotnine
- laravel里使用chunk的一个坑
- 一个小小的签到功能,到底用 MySQL 还是 Redis ? ?
- 下载丨9月数据库技术通讯:Redo日志丢失,重建遭遇ORA-16433处理
- knative serving 组件分析
- 在 minikube 上部署 knative
- 认识 JS 静态类型检查工具 Flow
- PostgreSQL中如何实现密码复杂度检查?