android 常用的intent action整理

 

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

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

<span style="font-size:16px;"><intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 

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


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


Extras
Extras属性主要用于传递目标组件所需要的额外的数据。通过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
<intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
                 <data android:host="localhost"/>
</intent-filter>

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
String
android.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 = newIntent(Intent.ACTION_PICK, uri);
            startActivityForResult(it,REQUEST_TEXT);

19
打开另一程序
Intent i = new Intent();
            ComponentName cn = newComponentName("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, "com@com.com");
           intent.putExtra(Contacts.Intents.Insert.EMAIL_TYPE,                   Contacts.ContactMethodsColumns.TYPE_WORK);
            startActivity(intent);

22(
更新)
    //
直接打电话出去  
    Uri uri =Uri.parse("tel:0800000123");  
    Intent it = newIntent(Intent.ACTION_CALL, uri);  
    startActivity(it);  
    //
用這個,要在 AndroidManifest.xml中,加上  
    //<uses-permissionid="android.permission.CALL_PHONE" />

23.
最基本的share信息的intent,可以传一段text信息到各个手机上已安装程序:如SMSEmailsina微波,米聊,facebooktwitter等等

                Intent it = newIntent(Intent.ACTION_SEND);
               it.putExtra(Intent.EXTRA_TEXT, "The email subject text");
                it.setType("text/plain");
               startActivity(Intent.createChooser(it, "Choose EmailClient"));
         
24.
调用skypeintent

方法1:老版,新版不可用,可能是因为skypeactivity结构变动:

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

方法2:打开到skypemain page

//        PackageManager packageManager =getActivity().getPackageManager();
//        Intent skype =packageManager.getLaunchIntentForPackage("com.skype.raider");
//       skype.setData(Uri.parse("tel:65465446"));
//        startActivity(skype);

方法3:传入号码,直接进入skype拨号画面并打电话:

        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);   

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值