格式化

廣告

廣告2

2012年11月22日 星期四

[Android app開發基本概念] Intent用法大全教學

[Android app開發基本概念] Intent用法大全教學


Intent(意圖)主要是解決Android應用的各項組件之間的通訊


Intent負責對應用中一次操作的動作、動作涉及數據、附加數據進行描述,Android則根據此Intent的描述,負責找到對應的組件,將 Intent傳遞給調用的組件,並完成組件的調用。
因此,Intent在這裡起著一個媒體中介的作用,專門提供組件互相調用的相關信息,實現調用者與被調用者之間的聯繫。
例如,在一個聯繫人維護的應用中,當我們在一個聯繫人列表屏幕(假設對應的Activity為listActivity)上,點擊某個聯繫人後,希望能夠跳出此聯繫人的詳細信息屏幕(假設對應的Activity為detailActivity)為了實現這個目的,listActivity需要構造一個 Intent,這個Intent用於告訴系統,我們要做「查看」動作,此動作對應的查看對象是「某聯繫人」,然後調用startActivity (Intent intent),將構造的Intent傳入,系統會根據此Intent中的描述,到ManiFest中找到滿足此Intent要求的Activity,系統會調用找到的 Activity,即為detailActivity,最終傳入Intent,detailActivity則會根據此Intent中的描述,執行相應的 操作。

Intent顯示網頁

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

Intent顯示地圖

Uri uri = Uri.parse("geo:38.299533,-77.036476");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);

Intent打電話

叫出撥號程序

Uri uri = Uri.parse("tel:0800000123");
Intent it = new Intent(Intent.ACTION_DIAL, uri);
startActivity(it);

直接打電話出去

Uri uri = Uri.parse("tel:0800000123");
Intent it = new Intent(Intent.ACTION_CALL, uri);
startActivity(it);

Intent傳送SMS/MMS

啟用簡訊程式

 Intent it = new Intent(Intent.ACTION_VIEW);  
 it.putExtra("sms_body", "The SMS text");   
 it.setType("vnd.android-dir/mms-sms");  
 startActivity(it);  

直接傳送簡訊

Uri uri = Uri.parse("smsto:0800000123");  
Intent it = new Intent(Intent.ACTION_SENDTO, uri);  
it.putExtra("sms_body", "The SMS text");  
startActivity(it);  

Intent傳送 Email

Uri uri = Uri.parse("mailto:xxx@abc.com"); 
Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
startActivity(it);

Intent播放多媒體

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

Intent Uninstall移除應用程序

Uri uri = Uri.fromParts("package", strPackageName, null);
Intent it = new Intent(Intent.ACTION_DELETE, uri);
startActivity(it);

沒有留言 :