Intent可以啟動程式的元件。
Intent還可以啟動Activity系統的其他應用的程式元件。
(包括系統自帶的程式元件,但是要獲取許可權。)
工具/原料
編譯工具:Eclipse
方法/步驟
ACTION_MAIN
【android.intent.action.MAIN】
應用程式入口
ACTION_VIEW
【android.intent.action.VIEW】
顯示指定資料
ACTION_ATTACH_DATA
【android.intent.action.ATTACH_DATA】
指定某塊資料將被附加到其他地方
ACTION_EDIT
【android.intent.action.EDIT】
編輯指定資料
ACTION_PICK
【android.intent.action.PICK】
從列表中選擇某項,並返回所選的資料。
ACTION_CHOOSER
【android.intent.action.CHOOSER】
顯示一個Activity選擇器
ACTION_GET_CONTENT
【android.intent.action.GET_CONTENT】
讓使用者選擇資料,並返回所選資料。
ACTION_DIAL
【android.intent.action.DIAL】
顯示撥號面板
ACTION_CALL
【android.intent.action.CALL】
直接向指定使用者打電話
ACTION_SEND
【android.intent.action.SEND】
向其他人傳送資料
ACTION_SENDTO
【android.intent.action.SENDTO】
向其他人傳送訊息
ACTION_ANSWER
【android.intent.action.ANSWER】
應答電話
ACTION_INSERT
【android.intent.action.INSERT】
插入資料
ACTION_DELETE
【android.intent.action.DELETE】
刪除資料
ACTION_RUN
【android.intent.action.RUN】
執行資料
ACTION_SYNC
【android.intent.action.SYNC】
執行資料同步
ACTION_PICK_ACTIVITY
【android.intent.action.PICK_ACTIVITY】
用於選擇Activity
ACTION_SEARCH
【android.intent.action.SEARCH】
執行搜尋
ACTION_WEB_SEARCH
【android.intent.action.WEB_SEARCH】
執行web搜尋
ACTION_FACTORY_TEST
【android.intent.action.FACTORY_TEST】
工廠測試入口點
這些只是action常量的一部分,要看其他的自己去查官方文件。
CATEGORY_DEFAULT
【android.intent.category.DEFAULT】
預設的Category
CATEGORY_BROWSABLE
【android.intent.category.BROWSABLE】
指定該Activity能被瀏覽器安全用
CATEGORY_TAB
【android.intent.category.TAB】
指定Activity作為TabActivity的Tab頁
CATEGORY_LAUNCHER
【android.intent.category.LAUNCHER】
Activity顯示頂級程式列表中
CATEGORY_INFO
【android.intent.category.INFO】
用於提供包資訊
CATEGORY_HOME
【android.intent.category.HOME】
設定該Activity隨系統啟動而執行
CATEGORY_PREFERENCE
【android.intent.category.PREFERENCE】
該Activity是引數面板
CATEGORY_TEST
【android.intent.category.TEST】
該Activity是一個測試
CATEGORY_CAR_DOCK
【android.intent.category.CAR_DOCK】
指定手機被插入汽車底座(硬體)時執行該Activity
CATEGORY_DESK_DOCK
【android.intent.category.DESK_DOCK】
指定手機被插入桌面底座(硬體)時執行該Activity
CATEGORY_CAR_MODE
【android.intent.category.CAR_MODE】
設定該Activity可在車載環境下使用
這些只是category常量的一部分,要看其他的自己去查官方文件。
這裡舉個例子
顯示聯絡人的名字、電話號碼。
// 建立Intent Intent intent = new Intent(); //設定Intent的Action屬性 intent.setAction(Intent.ACTION_GET_CONTENT); //設定Intent的Type屬性 intent.setType("vnd.android.cursor.item/phone"); // 啟動Activity,並希望獲取該Activity的結果 startActivityForResult(intent, PICK_CONTACT);
// 獲取返回的資料
Uri contactData = data.getData();
CursorLoader cursorLoader = new CursorLoader(this , contactData, null, null, null, null); // 查詢聯絡人資訊
Cursor cursor = cursorLoader.loadInBackground(); // 如果查詢到指定的聯絡人
if (cursor.moveToFirst()) {
String contactId = cursor.getString(cursor .getColumnIndex(ContactsContract.Contacts._ID));
// 獲取聯絡人的名字
String name = cursor.getString(cursor .getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
String phoneNumber = "此聯絡人暫未輸入電話號碼";
//根據聯絡人查詢該聯絡人的詳細資訊
Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
if (phones.moveToFirst()) {
//取出電話號碼
phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract .CommonDataKinds.Phone.NUMBER));
}
// 關閉遊標
phones.close();
EditText show = (EditText) findViewById(R.id.show);
//顯示聯絡人的名稱
show.setText(name);
EditText phone = (EditText) findViewById(R.id.phone);
//顯示聯絡人的電話號碼 phone.setText(phoneNumber); }
// 關閉遊標
cursor.close();
注意事項
本步驟需要一定程式碼基礎
程式程式碼以程式碼片段的形式展示