本文實例講述了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程序設計有所幫助。
新聞熱點
疑難解答