Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、处理接收短信,诸如此类,都可以通过设置Intent属性来完成。

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

ActionAction属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作。通过setAction()方法或在清单文件AndroidManifest.xml中设置。标识Activity为一个程序开始的示例代码(AndroidManifest.xml进行配置)如下:



                                          

复制代码DataData通常是URI格式定义的操作数据。例如:tel:// 。通过setData()方法设置。
CategoryCategory属性用于指定当前动作(Action)被执行的环境。通过addCategory()方法或在清单文件AndroidManifest.xml中设置。默认为:CATEGORY_DEFAULT
ExtrasExtras属性主要用于传递目标组件所需要的额外的数据。通过putExtras()方法设置。

  在本文中,主要介绍常见action的使用,Action描述Intent所触发动作名字的字符串,对于BroadcastIntent来说,Action指被广播出去的动作。理论上Action可 以为任何字符串,而与Android系统应用有关的Action字符串以静态字符串常量的形式定义在了Intent类中。Action中包含很多种,例如呼入,呼出电话,老师上课讲的接受短信等等,下面谨对常见的与系统有关的action进行整理:

1. Intent.ACTION_MAIN
String: android.intent.action.MAIN
标识Activity为一个程序的开始。

2. Intent.Action_CALL
Stirng: android.intent.action.CALL
呼叫指定的电话号码。

Intent intent=new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:10086");startActivity(intent);

3. Intent.ACTION_POWER_CONNECTED;
插上外部电源时发出的广播

4 Intent.ACTION_POWER_DISCONNECTED;
已断开外部电源连接时发出的广播

5.Intent.Action.DIAL
String: action.intent.action.DIAL
调用拨号面板
Intent intent=new Intent();intent.setAction(Intent.ACTION_DIAL);intent.setData(Uri.parse("tel:10086");startActivity(intent);

6.Intent.Action.ALL_APPS
String: andriod.intent.action.ALL_APPS
列出所有的应用。

7.Intent.ACTION_ANSWER
Stirng:android.intent.action.ANSWER
处理呼入的电话。

8 .Intent.ACTION_BUG_REPORT
String: android.intent.action.BUG_REPORT
显示Dug报告。

9. Intent.Action_CALL_BUTTON
String: android.action.intent.CALL_BUTTON.
相当于按拨号键。
Intent intent = new Intent(Intent.ACTION_CALL_BUTTON);startActivity(intent);

10. Telephony.SMS_RECEIVED
String: android.provider.Telephony.SMS_RECEIVED
接收短信的action
                                 


11. Intent.ACTION_GET_CONTENT
String: android.intent.action.GET_CONTENT
允许用户选择特殊种类的数据,并返回(特殊种类的数据:照一张相片或录一段音)

12. Intent.ACTION_BATTERY_LOW;
String: android.intent.action.BATTERY_LOW
表示电池电量低

13. Intent.ACTION_SEND
String: android.intent.action.Send
发送邮件的action

14. Intent.ACTION_CALL_PRIVILEGED
Stringandroid.intent.action.CALL_PRIVILEGED
调用skypeaction

   Intent intent = newIntent("android.intent.action.CALL_PRIVILEGED");         intent.setClassName("com.skype.raider",        "com.skype.raider.Main");       intent.setData(Uri.parse("tel:" + phone));          startActivity(intent);

15. Intent.ACTION_CLOSE_SYSTEM_DIALOGS
当屏幕超时进行锁屏时,当用户按下电源按钮,长按或短按(不管有没跳出话框),进行锁屏时,android系统都会广播此Action消息


18打开联系人列表

   <1>                       Intent i = new Intent();           i.setAction(Intent.ACTION_GET_CONTENT);           i.setType("vnd.android.cursor.item/phone");           startActivityForResult(i, REQUEST_TEXT);            <2>            Uri uri = Uri.parse("content://contacts/people");            Intent it = new Intent(Intent.ACTION_PICK, uri);            startActivityForResult(it, REQUEST_TEXT);

19 打开另一程序
Intent i = new Intent();            ComponentName cn = new ComponentName("com.yellowbook.android2",                    "com.yellowbook.android2.AndroidSearch");            i.setComponent(cn);            i.setAction("android.intent.action.MAIN");            startActivityForResult(i, RESULT_OK);


20.调用系统编辑添加联系人(高版本SDK有效):
Intent it = new Intent(Intent.ACTION_INSERT_OR_EDIT);                it.setType("vnd.android.cursor.item/contact");                // it.setType(Contacts.CONTENT_ITEM_TYPE);                it.putExtra("name", "myName");                it.putExtra(android.provider.Contacts.Intents.Insert.COMPANY,  "organization");                it.putExtra(android.provider.Contacts.Intents.Insert.EMAIL, "email");                it.putExtra(android.provider.Contacts.Intents.Insert.PHONE,"homePhone");                it.putExtra( android.provider.Contacts.Intents.Insert.SECONDARY_PHONE,                                "mobilePhone");                it.putExtra(  android.provider.Contacts.Intents.Insert.TERTIARY_PHONE,                                "workPhone");                it.putExtra(android.provider.Contacts.Intents.Insert.JOB_TITLE,"title");                startActivity(it);


21.调用系统编辑添加联系人(全有效):
Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);            intent.setType(People.CONTENT_ITEM_TYPE);            intent.putExtra(Contacts.Intents.Insert.NAME, "My Name");            intent.putExtra(Contacts.Intents.Insert.PHONE, "+1234567890");            intent.putExtra(Contacts.Intents.Insert.PHONE_TYPE, Contacts.PhonesColumns.TYPE_MOBILE);            intent.putExtra(Contacts.Intents.Insert.EMAIL, "[email protected]");            intent.putExtra(Contacts.Intents.Insert.EMAIL_TYPE,                    Contacts.ContactMethodsColumns.TYPE_WORK);            startActivity(intent);


22(更新)
   
 //直接打电话出去       Uri uri = Uri.parse("tel:0800000123");       Intent it = new Intent(Intent.ACTION_CALL, uri);       startActivity(it);       //用這個,要在 AndroidManifest.xml 中,加上       //


23.最基本的share 信息的intent,可以传一段text信息到各个手机上已安装程序:如SMSEmailsina微波,米聊,facebooktwitter等等
                Intent it = new Intent(Intent.ACTION_SEND);                it.putExtra(Intent.EXTRA_TEXT, "The email subject text");                it.setType("text/plain");                startActivity(Intent.createChooser(it, "Choose Email Client"));

          
24.调用skype intent

方法1:老版,新版不可用,可能是因为skype的activity结构变动://        Intent sky = new Intent("android.intent.action.CALL_PRIVILEGED");//        sky.setClassName("com.skype.raider",//                "com.skype.raider.contactsync.ContactSkypeOutCallStartActivity");//        sky.setData(Uri.parse("tel:" + phone));//        startActivity(sky);方法2:打开到skype的main page://        PackageManager packageManager = getActivity().getPackageManager();//        Intent skype = packageManager.getLaunchIntentForPackage("com.skype.raider");//        skype.setData(Uri.parse("tel:65465446"));//        startActivity(skype);方法3:传入号码,直接进入skype拨号画面并打电话:        Intent intent = new Intent("android.intent.action.CALL_PRIVILEGED");           intent.setClassName("com.skype.raider",        "com.skype.raider.Main");        intent.setData(Uri.parse("tel:" + phone));           startActivity(intent);  
  

intent action大全:






 android.intent.action.ALL_APPS

 android.intent.action.ANSWER

 android.intent.action.ATTACH_DATA

 android.intent.action.BUG_REPORT

 android.intent.action.CALL

 android.intent.action.CALL_BUTTON

 android.intent.action.CHOOSER

 android.intent.action.CREATE_LIVE_FOLDER

 android.intent.action.CREATE_SHORTCUT

 android.intent.action.DELETE

 android.intent.action.DIAL

 android.intent.action.EDIT

 android.intent.action.GET_CONTENT

 android.intent.action.INSERT

 android.intent.action.INSERT_OR_EDIT

 android.intent.action.MAIN

 android.intent.action.MEDIA_SEARCH

 android.intent.action.PICK

 android.intent.action.PICK_ACTIVITY

 android.intent.action.RINGTONE_PICKER

 android.intent.action.RUN

 android.intent.action.SEARCH

 android.intent.action.SEARCH_LONG_PRESS

 android.intent.action.SEND

 android.intent.action.SENDTO

 android.intent.action.SET_WALLPAPER

 android.intent.action.SYNC

 android.intent.action.SYSTEM_TUTORIAL

 android.intent.action.VIEW

 android.intent.action.VOICE_COMMAND

 android.intent.action.WEB_SEARCH

 android.net.wifi.PICK_WIFI_NETWORK

 android.settings.AIRPLANE_MODE_SETTINGS

 android.settings.APN_SETTINGS

 android.settings.APPLICATION_DEVELOPMENT_SETTINGS

 android.settings.APPLICATION_SETTINGS

 android.settings.BLUETOOTH_SETTINGS

 android.settings.DATA_ROAMING_SETTINGS

 android.settings.DATE_SETTINGS

 android.settings.DISPLAY_SETTINGS

 android.settings.INPUT_METHOD_SETTINGS

 android.settings.INTERNAL_STORAGE_SETTINGS

 android.settings.LOCALE_SETTINGS

 android.settings.LOCATION_SOURCE_SETTINGS

 android.settings.MANAGE_APPLICATIONS_SETTINGS

 android.settings.MEMORY_CARD_SETTINGS

 android.settings.NETWORK_OPERATOR_SETTINGS

 android.settings.QUICK_LAUNCH_SETTINGS

 android.settings.SECURITY_SETTINGS

 android.settings.SETTINGS

 android.settings.SOUND_SETTINGS

 android.settings.SYNC_SETTINGS

 android.settings.USER_DICTIONARY_SETTINGS

 android.settings.WIFI_IP_SETTINGS

 android.settings.WIFI_SETTINGS

 android.settings.WIRELESS_SETTINGS

 


更多相关文章

  1. WebView---Android中调用js方法及js中调用本地方法
  2. 【Android】引入百度定位android:process=":remote",导致onCreate
  3. Android xml application属性详解
  4. Linux下的Android电话管理软件――QtADB(安装启动方法)
  5. Android adb功能使用方法
  6. Android 4.4 全套源码及子模块源码的下载方法
  7. RelativeLayout部分属性介绍
  8. android解析XML文件的三方法之SAX

随机推荐

  1. Android 需要使用不同实例的情况
  2. Android中软键盘弹出时底部控件会上移的
  3. android的SurfaceView的使用
  4. Android实现ListView数据动态加载的方法
  5. android 事件派发流程详解
  6. Android之unable to execute dex java he
  7. Android App开机自动启动的实现
  8. Android App Development Quick Start An
  9. 使用Genymotion调试出现错误INSTALL_FAIL
  10. Android录制声音(二)录音输输出格式