Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、处理接收短信,诸如此类,都可以通过设置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> 复制代码Data:Data通常是URI格式定义的操作数据。例如:tel:// 。通过setData()方法设置。 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 调用skype的action 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 中,加上 //<uses-permission id="android.permission.CALL_PHONE" />
23.最基本的share 信息的intent,可以传一段text信息到各个手机上已安装程序:如SMS,Email,sina微波,米聊,facebook,twitter等等
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