Android開發(fā)實現(xiàn)的IntentUtil跳轉(zhuǎn)多功能工具類【包含視頻、音頻、圖片、攝像頭等操作功能】
本文實例講述了Android開發(fā)實現(xiàn)的IntentUtil跳轉(zhuǎn)多功能工具類。分享給大家供大家參考,具體如下:
說明:此工具類是本人開發(fā)中總結(jié)下來的,還有其它的跳轉(zhuǎn)親給我留言,希望大家一起把這個工具類打造成最全的跳轉(zhuǎn)工具,謝謝!
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);
}
/**
* 打開系統(tǒng)攝像頭錄像,并保存為圖片
*
* @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);
}
/**
* 打開系統(tǒng)攝像頭錄像,并保存為視頻
*
* @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);
}
/**
* 發(fā)送對像
*
* @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);// 要傳遞對像,對像必須是經(jīng)過序列化的
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);
}
}
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android操作json格式數(shù)據(jù)技巧總結(jié)》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android實現(xiàn)調(diào)用攝像頭拍照與視頻功能
- android開發(fā)之調(diào)用手機的攝像頭使用MediaRecorder錄像并播放
- Android開發(fā)教程之調(diào)用攝像頭功能的方法詳解
- Android中判斷是否有前置攝像頭、后置攝像頭的方法
- Android判斷用戶是否允許了攝像頭權(quán)限實例代碼
- Android實現(xiàn)調(diào)用攝像頭進行拍照功能
- Android調(diào)用前后攝像頭同時工作實例代碼
- Android實現(xiàn)調(diào)用攝像頭
- Android實現(xiàn)手機攝像頭的自動對焦
- Android使用MediaCodec將攝像頭采集的視頻編碼為h264
相關(guān)文章
Jetpack Compose實現(xiàn)對話框和進度條實例解析
對話框和進度條其實并無多大聯(lián)系,放在一起寫是因為兩者的內(nèi)容都不多,所以湊到一起,對話框是我們平時開發(fā)使用得比較多的組件,進度條的使用頻率也很高,比如下載文件,上傳文件,處理任務(wù)時都可以使用進度條2023-04-04
Android應(yīng)用UI開發(fā)中Fragment的常見用法小結(jié)
這篇文章主要介紹了Android應(yīng)用UI開發(fā)中Fragment的常見用法小結(jié),Fragment的存在是為了解決不同屏幕分辯率的動態(tài)和靈活UI設(shè)計,需要的朋友可以參考下2016-02-02
Kotlin + Flow 實現(xiàn)Android 應(yīng)用初始化任務(wù)啟動庫
這篇文章主要介紹了Kotlin + Flow 實現(xiàn)Android 應(yīng)用初始化任務(wù)啟動庫的方法,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03
Android判斷App前臺運行還是后臺運行(運行狀態(tài))
這篇文章主要介紹了Android判斷App前臺運行還是后臺運行的相關(guān)資料,需要的朋友可以參考下2016-04-04

