转载请注明:http://www.cnblogs.com/igoslly/p/6844154.html
Intent启用应用软件
intent可以用来要求其他应用组件完成特定工作,如相机、电话、地图等。intent只是表示app需要打开的功能,并未限制打开的软件。故当手机存在多个软件中,系统会提示用户选择偏好软件;若不存在软件,则会出错,需要在程序中进行避免。
intent必须包含action、Data Uri属性,其他还有Category、Component、Extra根据用户需求进行补充。
URI — uniform resources identifier是构建数据的标准化方法。
例如电话功能:
action : ACTION_DIAL
DATA : “tel:2125551212”
地图功能:
action : ACTION_VIEW
Data : “geo:47.6,-122.3”
Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.phrase(“geo:47.6,-122.3));
防止无打开应用,系统出错的需要在JAVA文件添加以下代码,同时若无法打开,也可以使用Toast向用户说明。
if (intent.resolveActivity(getPackageManager())!=null){ startActivity(intent); } else{ Toast.makeText(this,”Error”,Toast.LENGTH_SHORT).show(); //Toast弹出消息设置 }
我们Coffee应用需要的邮件功能,存在三个Action
ACTION_SENDTO |
无附件 |
ACTION_SEND |
1个附件 |
ACTION_MULTIPLE |
多个附件 |
添加Extra:SUBJECT表主题,EMAIL表所有收件人的字符串array,TEXT表邮件正文主体内容。
Intent intent = new Intent (Intent.ACTION_SENDTO); intent.setData(Uri.phrase(“mailto:”)); intent.putExtra(intent.EXTRA_EMAIL,address); //收件人地址String Array intent.putExtra(intent.EXTRA_SUBJECT,subject); //邮件主题 intent.putExtra(intent.EXTRA_TEXT,Msg); //邮件正文主体
申明:
1、本笔记为文字及图片均为个人原创,转载请注明博客园-igoslly
2、Android开发课程于2017年4年参与GoogleDeveloper进行学习,笔记原版http://www.studyjamscn.com/thread-20580-1-1.html#pid272486