Anroid之Intent几个重要属性详解

本文详细解析了Android Intent的四大关键属性:Action、Data、Category和Extras。Action包括ACTION_MAIN、ACTION_VIEW等,用于定义操作;Data如tel://、content://,指定操作数据;Category涉及CATEGORY_DEFAULT、CATEGORY_HOME等,定义执行环境;Extras则用于传递额外数据,如EXTRA_EMAIL、EXTRA_PHONE_NUMBER。组合使用这些属性,可以实现如拨号、发送邮件等多种功能。
摘要由CSDN通过智能技术生成

 Intent主要有以下四个重要属性,它们分别为:

    Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作。通过setAction()方法或在清单文件AndroidManifest.xml中设置。默认为:DEFAULT。

    Data:Data通常是URI格式定义的操作数据。例如:tel:// 。通过setData()方法设置。

    Category:Category属性用于指定当前动作(Action)被执行的环境。通过addCategory()方法或在清单文件AndroidManifest.xml中设置。默认为:CATEGORY_DEFAULT。

    Extras:Extras属性主要用于传递目标组件所需要的额外的数据。通过putExtras()方法设置。

  四个属性各自的常用值如下所示:

  Action:

      ACTION_MAIN:Android Application的入口,每个Android应用必须且只能包含一个此类型的Action声明。 

    ACTION_VIEW:系统根据不同的Data类型,通过已注册的对应Application显示数据。

    ACTION_EDIT:系统根据不同的Data类型,通过已注册的对应Application编辑示数据。 

    ACTION_DIAL:打开系统默认的拨号程序,如果Data中设置了电话号码,则自动在拨号程序中输入此号码。 

    ACTION_CALL:直接呼叫Data中所带的号码。 

    ACTION_ANSWER:接听来电。 

    ACTION_SEND:由用户指定发送方式进行数据发送操作。

    ACTION_SENDTO:系统根据不同的Data类型,通过已注册的对应Application进行数据发送操作。 

    ACTION_BOOT_COMPLETED:Android系统在启动完毕后发出带有此Action的广播(Broadcast)。 

    ACTION_TIME_CHANGED:Android系统的时间发生改变后发出带有此Action的广播(Broadcast)。 

    ACTION_PACKAGE_ADDED:Android系统安装了新的Application之后发出带有此Action的广播(Broadcast)。 

    ACTION_PACKAGE_CHANGED:Android系统中已存在的Application发生改变之后(如应用更新操作)发出带有此Action的广播(Broadcast)。 

    ACTION_PACKAGE_REMOVED:卸载了Android系统已存在的Application之后发出带有此Action的广播(Broadcast)。  

  Category:

      CATEGORY_DEFAULT:Android系统中默认的执行方式,按照普通Activity的执行方式执行。 

    CATEGORY_HOME:设置该组件为Home Activity。

    CATEGORY_PREFERENCE:设置该组件为Preference。 

    CATEGORY_LAUNCHER:设置该组件为在当前应用程序启动器中优先级最高的Activity,通常为入口ACTION_MAIN配合使用。 

    CATEGORY_BROWSABLE:设置该组件可以使用浏览器启动。 

    CATEGORY_GADGET:设置该组件可以内嵌到另外的Activity中。

  Extras:

      EXTRA_BCC:存放邮件密送人地址的字符串数组。 

    EXTRA_CC:存放邮件抄送人地址的字符串数组。

    EXTRA_EMAIL:存放邮件地址的字符串数组。 

    EXTRA_SUBJECT:存放邮件主题字符串。 

    EXTRA_TEXT:存放邮件内容。 

    EXTRA_KEY_EVENT:以KeyEvent对象方式存放触发Intent的按键。  

    EXTRA_PHONE_NUMBER:存放调用ACTION_CALL时的电话号码。   

   Data:

      tel://:号码数据格式,后跟电话号码。 

    mailto://:邮件数据格式,后跟邮件收件人地址。

    smsto://:短息数据格式,后跟短信接收号码。

    content://:内容数据格式,后跟需要读取的内容。 

    file://:文件数据格式,后跟文件路径。

    market://search?q=pname:pkgname:市场数据格式,在Google Market里搜索包名为pkgname的应用。

    geo://latitude, longitude:经纬数据格式,在地图上显示经纬度所指定的位置。

 

几个Action、Data属性的组合

ACTION_VIEW      content://com.android.contacts/contacts/1   显示标识为1的联系人的信息

ACTION_EDIT content://com.android.contacts/contacs/1  编辑标识为1的联系人的信息

ACTION_DIAL content://com.android.contacts/contacs/1 显示向标识为1的联系人拨号界面

ACTION_VIEW   tel:123  显示向指定号码123拨号的界面

ACTION_DIAL  tel:123  显示向指定号码123拨号的界面

ACTION_VIEW content://contacts/people/  显示所有联系人列表的信息,通过这种组合可以非常方便的查看系统联系人

package com.android.xiong.actiondata;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	
	private Button bt1,bt2,bt3;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		bt1=(Button)findViewById(R.id.bt1);
		bt2=(Button)findViewById(R.id.bt2);
		bt3=(Button)findViewById(R.id.bt3);
		
		bt1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				//创建Intent
				Intent intent=new Intent();
				String data="http://www.qq.com";
				//根据指定的字符串解析出Uri对象
				Uri uri=Uri.parse(data);
				//为Intent设置Action属性
				intent.setAction(Intent.ACTION_VIEW);
				//设置Data属性
				intent.setData(uri);
				startActivity(intent);
				
				
			}
		});
		bt2.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent=new Intent();
				intent.setAction(intent.ACTION_EDIT);
				String data="content://com.android.contacts/contacts/1";
				//根据指定的字符串解析出Uri对象
				Uri uri=Uri.parse(data);
				//设置data属性
				intent.setData(uri);
				startActivity(intent);
				
			}
		});
		bt3.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent=new Intent();
				intent.setAction(intent.ACTION_DIAL);
				String data="tel:15618345347";
				Uri uri=Uri.parse(data);
				intent.setData(uri);
				startActivity(intent);
				
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值