第二讲---android2.2 intent

本文总结了 Android 中 Intent 的标准动作、广播动作、类别及额外数据字段,并提供了多个使用 Intent 的实例,如显示网页、地图定位、发送 SMS/MMS 和电子邮件等。

Standard Activity Actions

These are the current standard actions that Intent defines for launching activities (usually through startActivity(Intent). The most important, and by far most frequently used, are ACTION_MAIN and ACTION_EDIT.

  • ACTION_MAIN
  • ACTION_VIEW
  • ACTION_ATTACH_DATA
  • ACTION_EDIT
  • ACTION_PICK
  • ACTION_CHOOSER
  • ACTION_GET_CONTENT
  • ACTION_DIAL
  • ACTION_CALL
  • ACTION_SEND
  • ACTION_SENDTO
  • ACTION_ANSWER
  • ACTION_INSERT
  • ACTION_DELETE
  • ACTION_RUN
  • ACTION_SYNC
  • ACTION_PICK_ACTIVITY
  • ACTION_SEARCH
  • ACTION_WEB_SEARCH
  • ACTION_FACTORY_TEST

Standard Broadcast Actions

These are the current standard actions that Intent defines for receiving broadcasts (usually through registerReceiver(BroadcastReceiver, IntentFilter) or a <receiver> tag in a manifest).

  • ACTION_TIME_TICK
  • ACTION_TIME_CHANGED
  • ACTION_TIMEZONE_CHANGED
  • ACTION_BOOT_COMPLETED
  • ACTION_PACKAGE_ADDED
  • ACTION_PACKAGE_CHANGED
  • ACTION_PACKAGE_REMOVED
  • ACTION_PACKAGE_RESTARTED
  • ACTION_PACKAGE_DATA_CLEARED
  • ACTION_UID_REMOVED
  • ACTION_BATTERY_CHANGED
  • ACTION_POWER_CONNECTED
  • ACTION_POWER_DISCONNECTED
  • ACTION_SHUTDOWN

Standard Categories

These are the current standard categories that can be used to further clarify an Intent via addCategory(String).

  • CATEGORY_DEFAULT
  • CATEGORY_BROWSABLE
  • CATEGORY_TAB
  • CATEGORY_ALTERNATIVE
  • CATEGORY_SELECTED_ALTERNATIVE
  • CATEGORY_LAUNCHER
  • CATEGORY_INFO
  • CATEGORY_HOME
  • CATEGORY_PREFERENCE
  • CATEGORY_TEST
  • CATEGORY_CAR_DOCK
  • CATEGORY_DESK_DOCK
  • CATEGORY_CAR_MODE

Standard Extra Data

These are the current standard fields that can be used as extra data via putExtra(String, Bundle).

  • EXTRA_ALARM_COUNT
  • EXTRA_BCC
  • EXTRA_CC
  • EXTRA_CHANGED_COMPONENT_NAME
  • EXTRA_DATA_REMOVED
  • EXTRA_DOCK_STATE
  • EXTRA_DOCK_STATE_CAR
  • EXTRA_DOCK_STATE_DESK
  • EXTRA_DOCK_STATE_UNDOCKED
  • EXTRA_DONT_KILL_APP
  • EXTRA_EMAIL
  • EXTRA_INITIAL_INTENTS
  • EXTRA_INTENT
  • EXTRA_KEY_EVENT
  • EXTRA_PHONE_NUMBER
  • EXTRA_REMOTE_INTENT_TOKEN
  • EXTRA_REPLACING
  • EXTRA_SHORTCUT_ICON
  • EXTRA_SHORTCUT_ICON_RESOURCE
  • EXTRA_SHORTCUT_INTENT
  • EXTRA_STREAM
  • EXTRA_SHORTCUT_NAME
  • EXTRA_SUBJECT
  • EXTRA_TEMPLATE
  • EXTRA_TEXT
  • EXTRA_TITLE
  • EXTRA_UID

常用intent列表:
Android Intent 用法汇总

显示网页
 

Code:
  1. <activity android:name="BrowserActivity" android:label="Browser" android:launchMode="singleTask" android:alwaysRetainTaskState="true" android:configChanges="orientation|keyboardHidden" android:theme="@style/BrowserTheme">    
  2. - <!--    
  3. For these schemes were not particular MIME type has been    
  4.                  supplied, we are a good candidate.    
  5.   -->    
  6. <intent-filter>    
  7.   <action android:name="android.intent.action.VIEW" />    
  8.   <category android:name="android.intent.category.DEFAULT" />    
  9.   <category android:name="android.intent.category.BROWSABLE" />    
  10.   <data android:scheme="http" />    
  11.   <data android:scheme="https" />    
  12.   <data android:scheme="about" />    
  13.   </intent-filter>    
  14. - <!--    
  15.   For these schemes where any of these particular MIME types    
  16.                   have been supplied, we are a good candidate.    
  17.   -->    
  18. <intent-filter>    
  19.   <action android:name="android.intent.action.VIEW" />    
  20.   <category android:name="android.intent.category.BROWSABLE" />    
  21.   <category android:name="android.intent.category.DEFAULT" />    
  22.   <data android:scheme="http" />    
  23.   <data android:scheme="https" />    
  24.   <data android:mimeType="text/html" />    
  25.   <data android:mimeType="text/plain" />    
  26.   <data android:mimeType="application/xhtml+xml" />    
  27.   <data android:mimeType="application/vnd.wap.xhtml+xml" />    
  28.   </intent-filter>    
  29. <!--   
  30. We are also the main entry point of the browser.   
  31.   -->    
  32. <intent-filter>    
  33.   <action android:name="android.intent.action.MAIN" />    
  34.   <category android:name="android.intent.category.DEFAULT" />    
  35.   <category android:name="android.intent.category.LAUNCHER" />    
  36.   <category android:name="android.intent.category.BROWSABLE" />    
  37.   </intent-filter>    
  38. <intent-filter>    
  39.   <action android:name="android.intent.action.WEB_SEARCH" />    
  40.   <category android:name="android.intent.category.DEFAULT" />    
  41.   <category android:name="android.intent.category.BROWSABLE" />    
  42.   <data android:scheme="" />    
  43.   <data android:scheme="http" />    
  44.   <data android:scheme="https" />    
  45.   </intent-filter>    
  46. <intent-filter>    
  47.   <action android:name="android.intent.action.WEB_SEARCH" />    
  48.   <action android:name="android.intent.action.MEDIA_SEARCH" />    
  49.   <category android:name="android.intent.category.DEFAULT" />    
  50.   </intent-filter>    
  51. <intent-filter>    
  52.   <action android:name="android.intent.action.SEARCH" />    
  53.   <category android:name="android.intent.category.DEFAULT" />    
  54.   </intent-filter>    
  55.   <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" />    
  56. <intent-filter>    
  57.   <action android:name="android.net.http.NETWORK_STATE" />    
  58.   <action android:name="android.intent.action.PROXY_CHANGE" />    
  59.   </intent-filter>    
  60.   </activity>    


1. Uri uri = Uri.parse("http://google.com"); 
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri); 
   3. startActivity(it);

显示地图
   1. Uri uri = Uri.parse("geo:38.899533,-77.036476"); 
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);  
   3. startActivity(it);  
   4. //其他 geo URI 範例 
   5. //geo:latitude,longitude 
   6. //geo:latitude,longitude?z=zoom 
   7. //geo:0,0?q=my+street+address 
   8. //geo:0,0?q=business+near+city 
   9. //google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom

路径规划
   1. Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en"); 
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri); 
   3. startActivity(it); 
   4. //where startLat, startLng, endLat, endLng are a long with 6 decimals like: 50.123456 

打电话
   1. //叫出拨号程序
   2. Uri uri = Uri.parse("tel:0800000123"); 
   3. Intent it = new Intent(Intent.ACTION_DIAL, uri); 
   4. startActivity(it); 

   1. //直接打电话出去 
   2. Uri uri = Uri.parse("tel:0800000123"); 
   3. Intent it = new Intent(Intent.ACTION_CALL, uri); 
   4. startActivity(it); 
   5. //用這個,要在 AndroidManifest.xml 中,加上 
   6. //<uses-permission id="android.permission.CALL_PHONE" /> 

传送SMS/MMS
   1. //调用短信程序
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri); 
   3. it.putExtra("sms_body", "The SMS text");  
   4. it.setType("vnd.android-dir/mms-sms"); 
   5. startActivity(it);

   1. //传送消息
   2. Uri uri = Uri.parse("smsto://0800000123"); 
   3. Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
   4. it.putExtra("sms_body", "The SMS text"); 
   5. startActivity(it);

   1. //传送 MMS 
   2. Uri uri = Uri.parse("content://media/external/images/media/23"); 
   3. Intent it = new Intent(Intent.ACTION_SEND);  
   4. it.putExtra("sms_body", "some text");  
   5. it.putExtra(Intent.EXTRA_STREAM, uri); 
   6. it.setType("image/png");  
   7. startActivity(it); 

传送 Email
   1. Uri uri = Uri.parse("mailto:xxx@abc.com"); 
   2. Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
   3. startActivity(it); 

   1. Intent it = new Intent(Intent.ACTION_SEND); 
   2. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com"); 
   3. it.putExtra(Intent.EXTRA_TEXT, "The email body text"); 
   4. it.setType("text/plain"); 
   5. startActivity(Intent.createChooser(it, "Choose Email Client")); 

   1. Intent it=new Intent(Intent.ACTION_SEND);   
   2. String[] tos={"me@abc.com"};   
   3. String[] ccs={"you@abc.com"};   
   4. it.putExtra(Intent.EXTRA_EMAIL, tos);   
   5. it.putExtra(Intent.EXTRA_CC, ccs);   
   6. it.putExtra(Intent.EXTRA_TEXT, "The email body text");   
   7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");   
   8. it.setType("message/rfc822");   
   9. startActivity(Intent.createChooser(it, "Choose Email Client"));

   1. //传送附件
   2. Intent it = new Intent(Intent.ACTION_SEND); 
   3. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); 
   4. it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3"); 
   5. sendIntent.setType("audio/mp3"); 
   6. startActivity(Intent.createChooser(it, "Choose Email Client"));

播放多媒体
       Uri uri = Uri.parse("file:///sdcard/song.mp3"); 
       Intent it = new Intent(Intent.ACTION_VIEW, uri); 
       it.setType("audio/mp3"); 
       startActivity(it);

       Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); 
       Intent it = new Intent(Intent.ACTION_VIEW, uri); 

       startActivity(it);

Market 相关
1.        //寻找某个应用
2.        Uri uri = Uri.parse("market://search?q=pname:pkg_name");
3.        Intent it = new Intent(Intent.ACTION_VIEW, uri); 
4.        startActivity(it); 
5.        //where pkg_name is the full package path for an application

1.        //显示某个应用的相关信息
2.        Uri uri = Uri.parse("market://details?id=app_id"); 
3.        Intent it = new Intent(Intent.ACTION_VIEW, uri);
4.        startActivity(it); 
5.        //where app_id is the application ID, find the ID  
6.        //by clicking on your application on Market home  
7.        //page, and notice the ID from the address bar

Uninstall 应用程序
1.        Uri uri = Uri.fromParts("package", strPackageName, null);
2.        Intent it = new Intent(Intent.ACTION_DELETE, uri);  
3.        startActivity(it);
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值