android调用系统邮件组件(intent匹配的流程)
来源:互联网 发布:东方网域名 编辑:程序博客网 时间:2024/05/17 02:03
直接代码
package com.example.demoemail;import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;/** * 调用邮件组件,主要是用到了intent的相关知识 * 1.首先需要在清单文件的Activity中配置action标签(动作,此处指明是调用系统的邮件组件android.intent.action.SENDTO) * 需要设置data标签,此处是对应的uri数据。 <data>的一般格式是scheme://host:post/path.具体代表含义请自己上网查询。 * 继续添加<catagory>标签,此标签是设置种类信息,像我们平常启动一个activity一般用startActivity(),如果调用了它,系统会默认的给Intent添加 <category android:name="android.intent.category.DEFAULT"/>, * 所以我们开发的时候不会出错。如果需要其他的种类,就必须要在清单文件中配置。否则会配皮失败,NO_MATCH_CATEGORY. * 2.在Activity中调用邮箱组件,使用Intent来设置action,data,category等。当你调用startActivity(),它会与清单文件你配置的<intent-filter>中信息配皮, * 如果匹配成功就调用邮件组件。 * * 总结一下。intent组件的匹配流程。 * intent首先会与<intent-filter>的action相匹配,如果<action>为空,会匹配失败。NO_MATCH_ACTION.不继续进行 * 如果<intent-fileter>中<action>有,再判断intent.setAction()是否为空,如果不是空,就与<intent-fileter>中<action>相配皮,如果为空和前面匹配成功,就继续让Intent.setData和type与<intent-filter>中 * <data><type>相比较。如果匹配度>0则匹配成功(值越大,匹配越成功)。如果<0,则表示匹配失败。NO_MATCH_DATA.NO_MATCH_TYPE。最后比较<Category>信息。如果intent.setCategory与<Category>中信息有,匹配成功,否则 * 匹配失败。NO_MATCH_CATEGORY * * 像之上NO_MATCH_CATEGORY这些返回的都是16进制的值,一般最高位为0表示成功。 * @author pangzf * */public class MainActivity extends Activity {private View vClick;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();setClickListener();}private void initView() {vClick = findViewById(R.id.tv_clcik);}private void setClickListener() {vClick.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {sendMail();};});}protected void sendMail() {Intent intent=new Intent();intent.setAction(Intent.ACTION_SENDTO);intent.setData(Uri.parse("mailto:pzfpang451@163.com"));startActivity(intent);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.demoemail" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.demoemail.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter > <action android:name="android.intent.action.SENDTO"/> <data android:scheme="mailto"/> <category android:name="android.intent.category.APP_BROWSER"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> </application></manifest>
demo地址:http://download.csdn.net/detail/pangzaifei/6989527
0 0
- android调用系统邮件组件(intent匹配的流程)
- intent 调用系统的组件
- 【Android学习笔记】用intent调用常用的系统组件
- Intent调用系统组件
- anroid Intent调用系统组件的方法
- android-调用系统的Intent
- Android的Intent系统调用
- Android调用系统组件常用uri & intent设置
- 用Intent调用Android系统中经常被用到的组件
- Android 用Intent调用系统中经常被用到的组件
- Android开发学习笔记:用Intent调用系统中经常被用到的组件
- Android 用Intent调用系统中经常被用到的组件
- Android之隐式意图(Intent)如何查找匹配的组件
- Android之隐式意图(Intent)如何查找匹配的组件
- Android之隐式意图(Intent)如何查找匹配的组件
- android 系统Intent调用
- android 系统Intent调用
- 分享:用Intent调用常用的系统组件
- 《OpenStack部署实践》
- Qt4升级到Qt5所遇到的问题的解决方法(qt4转qt5的问题及解决方法)
- Modelsim之 DO文件简介
- 23种设计模式(12):策略模式
- [学习]L1 Homotopy for L1 norm minimization
- android调用系统邮件组件(intent匹配的流程)
- 打不开myeclipse里面的web.xml文件
- HDOJ 1754 I Hate It
- soj 1715
- HTTP协议 (三) 压缩
- 根据查询列名生成SQL的几个Perl代码
- Scala学习笔记8 (xml)
- 问题:如何理解指向指针的指针?
- OC经典错误(持续更新中)