Intent 常用方法总结
来源:互联网 发布:软件出口是什么产品 编辑:程序博客网 时间:2024/05/22 06:13
Intent 简介请看上篇文章
Intent 使用方法详解链接:
http://www.jianshu.com/p/81e4951d8054
本文主要是总结Intent 常用的方法,并封装成Utils类中
主要涉及以下内容
- 通过组件名启动
- 通过包名、类名启动
- 通过类启动
- 打电话
- 发短信
- 打开网页
- 播放音乐
- 打开图片
- 创建闹钟
- 创建定时器
- 添加日历事件
- 拍照
- 打开Camera
- 打开视频录像
- 选择联系人
- 查看联系人
- 编辑联系人
- 插入联系人
- 写邮件
- 打开地图指定点
欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息
我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。
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); } }
2. 通过包名、类名启动
- 使用方法
/** * 通过包名类名启动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); } }
3. 通过类启动
- 使用方法
/** * 通过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); } }
4. 打电话
- 使用方法
/** * 打电话 * **/ public static void MakeCall(Context context, int number) { // 需要打电话权限 // <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); } }
注意:
打电话需要申请权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
5. 发短信
- 使用方法
/** * 发送短信 * **/ 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); } }
6. 打开网页
- 使用方法
/** * 打开网页 * **/ 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); } }
7. 播放音乐
- 使用方法
/** * 播放音乐 * **/ 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); } }
- 播放特定艺术家专辑
/** * 搜索特定艺术家专辑 * **/ 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); } }
8. 打开图片
- 使用方法
/** * 打开图片 * **/ 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); } }
9. 创建闹钟
- 使用方法
/** * 创建闹钟 * **/ 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); } }
- 设置闹钟过滤
// 设置闹钟、定时器 <intent-filter> <action android:name="android.intent.action.SET_TIMER" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
- 显示所有闹钟
// 显示所有闹钟 <intent-filter> <action android:name="android.intent.action.SHOW_ALARMS" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
10. 创建定时器
- 使用方法
/** * 创建定时器 * **/ 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); } }
11. 添加日历事件
- 使用方法
/** * 添加日历事件 * **/ 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); } }
- 日历事件过滤
<intent-filter> <action android:name="android.intent.action.INSERT" /> <data android:mimeType="vnd.android.cursor.dir/event" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
12. 拍照
- 使用方法
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); } }
- 拍照过滤
<intent-filter> <action android:name="android.media.action.IMAGE_CAPTURE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
13. 打开Camera
- 使用方法
/** * 打开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); } }
- 打开Camera 过滤
<intent-filter> <action android:name="android.media.action.STILL_IMAGE_CAMERA" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
14. 打开视频录像
- 使用方法
/** * 打开录像视频 * **/ public static void OpenCameraVideo(Context context) { Intent intent = new Intent(MediaStore.INTENT_ACTION_VIDEO_CAMERA); if (intent.resolveActivity(context.getPackageManager()) != null) { context.startActivity(intent); } }
- 打开录像功能过滤
<intent-filter> <action android:name="android.media.action.VIDEO_CAMERA" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
15. 选择联系人
- 使用方法
/*** * 选择联系人 * **/ 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); } }
16. 查看联系人
- 使用方法
/*** * 选择联系人 * **/ 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); } }
17. 编辑联系人
- 使用方法
/*** * 编辑联系人 * **/ 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); } }
18. 插入联系人
- 使用方法
/*** * 插入联系人 * **/ 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); } }
19. 写邮件
- 使用方法
/*** * 写邮件 * **/ 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); } }
- 邮件过滤
<intent-filter> <action android:name="android.intent.action.SEND" /> <data android:type="*/*" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SENDTO" /> <data android:scheme="mailto" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
20. 打开地图指定点
- 使用方法
/*** *打开地图指定点 * **/ 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); } }
欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息
我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。
点击阅读原文,获取更多福利
阅读全文
0 0
- Intent 常用方法总结
- Intent 常用方法
- Intent常用方法
- intent 常用方法
- intent方法使用总结
- android常用intent的方法
- Android Intent调用方法总结
- intent传递数据方法总结
- Android基础学习之Intent常用方法
- 一些常用的android intent跳转方法
- 一些常用的android intent跳转方法
- 常用Intent
- 常用Intent
- 常用Intent
- Intent常用
- 常用Intent
- 常用Intent
- jquery常用方法总结
- PC客户端与Android服务端的Socket同步通信(USB)
- cookie与session
- Java发送邮件
- charles 遇到的一些问题
- C#语言和SQL Server数据库技术_模糊查询和聚合函数
- Intent 常用方法总结
- javascript中的== 和 === 浅析
- 【二叉树】非递归遍历的通用算法:前序、中序和后序
- 自定义view实心圆加属性动画
- adobe animate cc 2017 更改sdk版本
- SpingMVC模块常用几种handlerMapping的初始化过程
- RecyclerView简单解析使用Xutils实现表格效果和普通listview效果
- 史上最全AndroidStudio快捷键中文版
- 购物车发货收货逻辑代码