Intent 使用方法總結(jié)
共 12670字,需瀏覽 26分鐘
·
2024-05-22 08:30
和你一起終身學習,這里是程序員Android
經(jīng)典好文推薦,通過閱讀本文,您將收獲以下知識點:
一、通過組件名啟動
二、通過包名、類名啟動
三、通過類啟動
四、打電話
五、發(fā)短信
六、打開網(wǎng)頁
七、播放音樂
八、打開圖片
九、創(chuàng)建鬧鐘
十、創(chuàng)建定時器
十一、添加日歷事件
十二、拍照
十三、打開Camera
十四、打開視頻錄像
十五、選擇聯(lián)系人
十六、查看聯(lián)系人
十七、編輯聯(lián)系人
十八、插入聯(lián)系人
十九、寫郵件
二十、打開地圖指定點
二十一、檢索特定類型圖片
一、通過組件名啟動 Activity
1. 使用方法
/**
* 通過組件名啟動Activity
* **/
public static void StartIntentFromComponent(Context context,
Class intentClass) {
Intent intent = new Intent();
// 1.使用ComponentName 啟動Activity
ComponentName componentname = new ComponentName(context, intentClass);
intent.setComponent(componentname);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
二、通過包名、類名啟動 Activity
1.使用方法
/**
* 通過包名類名啟動Activity
* **/
public static void StartIntentFromPackage(Context context,
String packageName, String className) {
Intent intent = new Intent();
// 1.使用ComponentName 啟動Activity
ComponentName componentname = new ComponentName(packageName, className);
intent.setComponent(componentname);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
三、 通過類啟動 Activity
1. 使用方法
/**
* 通過Class啟動Activity
* **/
public static void StartIntentFromClass(Context context, Class<?> classOpen) {
Intent intent = new Intent();
// 2.使用Setclass方法,類方法間接使用ComponentName
intent.setClass(context, classOpen);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
四、 打電話
1. 使用Intent 打電話 方法如下
/**
* 打電話
* **/
public static void MakeCall(Context context, int number) {
// 需要打電話權(quán)限
// <uses-permission android:name="android.permission.CALL_PHONE"/>
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"
+ number));
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
2.注意:打電話需要申請權(quán)限
<uses-permission android:name="android.permission.CALL_PHONE"/>
五、 發(fā)短信
1.基礎(chǔ)發(fā)送短信
/**
* 1.基礎(chǔ)發(fā)送短信
* **/
public static void SendMms(Context context, String mmsString) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, mmsString);
sendIntent.setType("text/plain");
// sendIntent.setData(Uri.parse("smsto:"));
// This ensures only SMS apps respond
// 修改 Intnent 選擇器Tittle
String title = context.getResources().getString(R.string.hello_world);
Intent chooser = Intent.createChooser(sendIntent, title);
// 驗證是否有Activity 接收
if (sendIntent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(chooser);
}
}
2.自定義 發(fā)送短信
/**
* 2.自定義 發(fā)送短信
* **/
public static void SendMmsCustom(Context context, String mmsString) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, mmsString);
sendIntent.setType("text/plain");
// sendIntent.setData(Uri.parse("smsto:"));
// This ensures only SMS apps respond
// 修改 Intnent 選擇器Tittle
String title = context.getResources().getString(R.string.hello_world);
Intent chooser = Intent.createChooser(sendIntent, title);
// 驗證是否有Activity 接收
if (sendIntent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(chooser);
}
}
六、打開網(wǎng)頁
1. 使用方法
/**
* 打開網(wǎng)頁
* **/
public static void OpenInternetUri(Context context, String uri) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
七、播放音樂
1. 使用方法
/**
* 播放音樂
* **/
public static void PlayMusic(Context context, String path) {
// String
// path=Environment.getExternalStorageDirectory().getAbsolutePath()+"test.mp3";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file:///" + path), "audio/*");
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
2.播放特定藝術(shù)家專輯
/**
* 搜索特定藝術(shù)家專輯
* **/
public static void playSearchArtist(Context context, String artist) {
Intent intent = new Intent(
MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH);
intent.putExtra(MediaStore.EXTRA_MEDIA_FOCUS,
MediaStore.Audio.Artists.ENTRY_CONTENT_TYPE);
intent.putExtra(MediaStore.EXTRA_MEDIA_ARTIST, artist);
intent.putExtra(SearchManager.QUERY, artist);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
八、 打開圖片
1. 使用方法
/**
* 打開圖片
* **/
public static void OpenImage(Context context, File file) {
// File file =new File("/mnt/sdcard/1.png");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "image/*");
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
九、 創(chuàng)建鬧鐘
1. 使用方法
/**
* 創(chuàng)建鬧鐘
* **/
public static void SetAlarmIntent(Context context, String message,
int hour, int minutes) {
Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM)
.putExtra(AlarmClock.EXTRA_MESSAGE, message)
.putExtra(AlarmClock.EXTRA_HOUR, hour)
.putExtra(AlarmClock.EXTRA_MINUTES, minutes);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
2.設(shè)置鬧鐘action 機權(quán)限
<!-- 設(shè)置鬧鐘的權(quán)限 -->
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<activity android:name=".Intent.IntentMethod" >
<intent-filter>
<action android:name="android.intent.action.SET_ALARM" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
3.顯示所有鬧鐘
顯示所有鬧鐘
十、創(chuàng)建定時器
1. 使用方法
/**
* 創(chuàng)建定時器
* **/
public static void StartTimer(Context context, String message, int seconds) {
Intent intent = new Intent(AlarmClock.ACTION_SET_TIMER)
.putExtra(AlarmClock.EXTRA_MESSAGE, message)
.putExtra(AlarmClock.EXTRA_LENGTH, seconds)
.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
添加設(shè)置SET_TIMER的Action
<activity android:name=".Intent.IntentMethod" >
<intent-filter>
<action android:name="android.intent.action.SET_ALARM" />
<action android:name="android.intent.action.SET_TIMER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
十一、 添加日歷事件
1. 使用方法
/**
* 添加日歷事件
* **/
public static void AddCalendarEvent(Context context, String title,
String location, Calendar begin, Calendar end) {
Intent intent = new Intent(Intent.ACTION_INSERT)
.setData(Events.CONTENT_URI).putExtra(Events.TITLE, title)
.putExtra(Events.EVENT_LOCATION, location)
.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, begin)
.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, end);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
2. 日歷事件過濾
過濾日歷action
十二、 拍照
1.使用方法
/**
* 拍照
* **/
public static void CapturePhoto(Context context, String targetFilename,
Uri mLocationForPhotos) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.withAppendedPath(mLocationForPhotos, targetFilename));
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
2. 拍照過濾
拍照過濾Action
十三、打開Camera
1. 使用方法
/**
* 打開Camera
* **/
public static void OpenCamera(Context context) {
Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
2.打開Camera 過濾
Camera 過濾 Action方法
十四、打開視頻錄像
1.使用方法
/**
* 打開錄像視頻
* **/
public static void OpenCameraVideo(Context context) {
Intent intent = new Intent(MediaStore.INTENT_ACTION_VIDEO_CAMERA);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
2. 打開錄像功能過濾
過濾錄像功能方法
十五、 選擇聯(lián)系人
1. 使用方法
/***
* 選擇聯(lián)系人
* **/
public static void SelectContact(Context context) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
十六、 查看聯(lián)系人
1.使用方法
/***
* 查看聯(lián)系人
* **/
public static void ViewContact(Context context, Uri contactUri) {
Intent intent = new Intent(Intent.ACTION_VIEW, contactUri);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
十七、 編輯聯(lián)系人
1. 使用方法
/***
* 編輯聯(lián)系人
* **/
public static void EditContact(Context context, Uri contactUri, String email) {
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setData(contactUri);
intent.putExtra(Intents.Insert.EMAIL, email);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
十八、插入聯(lián)系人
1.使用方法
/***
* 插入聯(lián)系人
* **/
public static void InsertContact(Context context, String name, String email) {
Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType(Contacts.CONTENT_TYPE);
intent.putExtra(Intents.Insert.NAME, name);
intent.putExtra(Intents.Insert.EMAIL, email);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
十九、寫郵件
1. 使用方法
/***
* 寫郵件
* **/
public static void composeEmail(Context context, String[] addresses,
String subject, Uri attachment) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("*/*");
// intent.setData(Uri.parse("mailto:"));
// only email apps should handle this
intent.putExtra(Intent.EXTRA_EMAIL, addresses);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_STREAM, attachment);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
2. 郵件過濾
郵件過濾 方法
二十、 打開地圖指定點
1. 使用方法
/***
* 打開地圖指定點
* **/
public static void callCar(Context context, Uri geoLocation) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(geoLocation);
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
二十一、檢索特定類型圖片
1.使用方法
/***
* 檢索特定類型圖片 獲取照片
* **/
public static void selectImage(Context context) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺得很優(yōu)秀,歡迎點擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請聯(lián)系小編刪除。同時感謝您的閱讀,期待您的關(guān)注。
評論
圖片
表情
