轉:intent簡介

來源:互聯網
上載者:User

標籤:des   android   blog   http   io   ar   os   使用   sp   

轉自:here

 

一 Android系統用於Activity的標準Intent 1 根據連絡人ID顯示連絡人資訊 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_VIEW);   //顯示連絡人資訊  
  3. intent.setData(Uri.parse("content://contacts/people/492"));  
  4. startActivity(intent);  

2 根據連絡人ID顯示撥號面板 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_DIAL);  //顯示撥號面板  
  3. intent.setData(Uri.parse("content://contacts/people/492"));  
  4. startActivity(intent);  

3 顯示撥號面板, 並在撥號面板上將號碼顯示出來 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_VIEW);     
  3. intent.setData(Uri.parse("tel://15216448315"));  
  4. startActivity(intent);  

4 顯示撥號面板, 並在撥號面板上將號碼顯示出來 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_DIAL);   //顯示撥號面板, 並在撥號面板上將號碼顯示出來  
  3. intent.setData(Uri.parse("tel://15216448315"));  
  4. startActivity(intent);  

5 根據連絡人的ID編輯連絡人 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_EDIT);   //編輯連絡人  
  3. intent.setData(Uri.parse("content://contacts/people/492"));  
  4. startActivity(intent);  

6 顯示通訊錄連絡人和其他帳號連絡人的列表 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_VIEW);     
  3. intent.setData(Uri.parse("content://contacts/people/"));  
  4. startActivity(intent);  

7 啟動HomeScreen [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_MAIN);     //啟動HomeScreen  
  3. intent.addCategory(Intent.CATEGORY_HOME);  
  4. startActivity(intent);  

8 選擇某個連絡人的號碼,返回一個代表這個號碼的uri,如:content://contacts/phones/982 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_GET_CONTENT);       
  3. intent.setType("vnd.android.cursor.item/phone");  
  4. startActivityForResult(intent, 1);  

9  開啟多個應用選取各種類型的資料,以uri返回。返回的uri可使用ContentResolver.openInputStream(Uri)開啟
    該功能可用在郵件中附件的選取
    舉例如下:
    選取一張圖片, 返回的uri為 content://media/external/images/media/47
    選取一首歌, 返回的uri為 content://media/external/audio/media/51 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_GET_CONTENT);       
  3. intent.setType("*/*");  
  4. intent.addCategory(Intent.CATEGORY_OPENABLE);  
  5. startActivityForResult(intent, 2);  

10 自訂一個chooser,不使用系統的chooser
     該chooser可以有自己的標題(Title)
     並且不必讓使用者指定偏好 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_CHOOSER);   
  3. intent.putExtra(Intent.EXTRA_TITLE, "my chooser");  
  4. intent.putExtra(Intent.EXTRA_INTENT,   
  5.         new Intent(Intent.ACTION_GET_CONTENT)  
  6.         .setType("*/*")  
  7.         .addCategory(Intent.CATEGORY_OPENABLE)  
  8.         );  
  9.   
  10. startActivityForResult(intent, 2);  

11 選取activity,返回的activity可在返回的intent.getComponent()中得到 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_PICK_ACTIVITY);   
  3. intent.putExtra( Intent.EXTRA_INTENT,   
  4.         new Intent(Intent.ACTION_GET_CONTENT)  
  5.         .setType("*/*")  
  6.         .addCategory(Intent.CATEGORY_OPENABLE)  
  7.         );  
  8. startActivityForResult(intent, 3);  

12 啟動搜尋,在以下範例程式碼中,"ANDROID"為要搜尋的字串
     當執行這段代碼後, 會在系統的Chooser中顯示可以用於搜尋的程式列表 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_SEARCH);     //啟動搜尋  
  3. intent.putExtra(SearchManager.QUERY, "ANDROID");  
  4. startActivity(intent);  

13 啟動WEB搜尋,在以下範例程式碼中,"ANDROID"為要搜尋的字串
     當執行這段代碼後, 會在系統的Chooser中顯示可以用於搜尋的程式列表,一般情況下系統中安裝的瀏覽器都會顯示出來 [java] view plaincopy 
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_WEB_SEARCH);     //啟動搜尋  
  3. intent.putExtra(SearchManager.QUERY, "ANDROID");  
  4. startActivity(intent);  
 二  Android系統用於BroadcastReceiver的標準Intent 1 ACTION_TIME_TICK,系統時鐘廣播,系統每分鐘都會發送一個這樣的廣播,   如果在應用開發中,有些邏輯依賴於系統時鐘,可以註冊一個廣播接收者   這是一個受保護的action,只有系統才能發送這個廣播   並且,在manifest檔案中註冊的廣播接收者不能接收到該廣播,若要接收該廣播,必須在代碼中註冊廣播接收者 [java] view plaincopy 
  1. registerReceiver(new BroadcastReceiver(){  
  2.   
  3.     @Override  
  4.     public void onReceive(Context context, Intent intent) {  
  5.         Log.i("xxxx", "TIME_TICK");  
  6.     }  
  7.       
  8. },   
  9. new IntentFilter(Intent.ACTION_TIME_TICK));  

2 在官方文檔中,列出了以下標準的廣播action
  • ACTION_TIME_TICK               系統時鐘廣播
  • ACTION_TIME_CHANGED            時間被重新設定
  • ACTION_TIMEZONE_CHANGED        時區改變
  • ACTION_BOOT_COMPLETED          系統啟動完成
  • ACTION_PACKAGE_ADDED           系統中安裝了新的應用
  • ACTION_PACKAGE_CHANGED         系統中已存在的app包被更改
  • ACTION_PACKAGE_REMOVED         系統中已存在的app被移除
  • ACTION_PACKAGE_RESTARTED       使用者重啟了一個app,這個app的所有進程被殺死
  • ACTION_PACKAGE_DATA_CLEARED    使用者清除了一個app的資料
  • ACTION_UID_REMOVED             系統中的一個user ID被移除
  • ACTION_BATTERY_CHANGED         電池狀態改變,這是一個sticky廣播
  • ACTION_POWER_CONNECTED         裝置串連了外部電源
  • ACTION_POWER_DISCONNECTED      外部電源被移除
  • ACTION_SHUTDOWN                裝置正在關機
三  Android中的標準類別(category) 類別(category)一般配合action使用,以下為系統中的標準類別,由於數量過多,只能在使用到時再詳細研究
  • 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_LE_DESK_DOCK
  • CATEGORY_HE_DESK_DOCK
  • CATEGORY_CAR_MODE
  • CATEGORY_APP_MARKET
四  Android中的標準Extra索引值 這些常量用於在調用Intent.putExtra(String, Bundle)時作為索引值傳遞資料,同樣由於數量較多,在此只列出索引
  • EXTRA_ALARM_COUNT
  • EXTRA_BCC
  • EXTRA_CC
  • EXTRA_CHANGED_COMPONENT_NAME
  • EXTRA_DATA_REMOVED
  • EXTRA_DOCK_STATE
  • EXTRA_DOCK_STATE_HE_DESK
  • EXTRA_DOCK_STATE_LE_DESK
  • 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_ORIGINATING_URI
  • EXTRA_PHONE_NUMBER
  • EXTRA_REFERRER
  • 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中的標誌(FLAG) Intent類中定義了一些以FLAG_開頭的標誌位,這些標誌位中有的非常重要,會影響app中Activity和BroadcastReceiver等的行為。以下為這些標誌位的索引,是從官方文檔上的。之後會對重要的標誌加以詳細分析

轉:intent簡介

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.