5/10/2011

[Android] Intent 意圖

Android 中的 Intent 非常好用,整個 Android 的架構最大的特色可以說就建構在 Intent 上,您可以利用類似 URL 的 Intent 啟動任何一個程式的任何一個畫面。為了讓大家能更容易的使用並交流 Intent,甚至有人發起了一個 OpenIntents 組織,讓全世界的可以為自己的應用程式註冊 Intent。可以在 Intent 中,指定要應用程式執行的動作 (view, edit, dial),以及應用程式執行該動作時,所需要的資料。都指定好後,只要透過 startActivity(),Android 系統會自動尋找,最符合你指定要求的應用程式,並喚起執行該應用程式。
1.設計layout
image

2.撰寫程式
//    設定元件回呼事件
//  顯示網頁
private Button.OnClickListener _OnbuttonUrlClick = new Button.OnClickListener(){
     public void onClick(View v){
         if (D) Log.d(TAG, "_OnbuttonUrlClick");
         Uri uri=Uri.parse("http://www.google.com.tw");
         Intent i=new Intent(Intent.ACTION_VIEW,uri);
         startActivity(i);
     }
};
//  寄送簡訊
private Button.OnClickListener _OnbuttonEmailClick = new Button.OnClickListener(){
     public void onClick(View v){
         if (D) Log.d(TAG, "_OnbuttonEmailClick");
         Uri uri=Uri.parse("mailto:markjo@itrc.org.tw");
         Intent i=new Intent(Intent.ACTION_SENDTO,uri);
         startActivity(i);
     }
};
//  撥打電話
private Button.OnClickListener _OnbuttonTelClick = new Button.OnClickListener(){
     public void onClick(View v){
         if (D) Log.d(TAG, "_OnbuttonTelClick");
         Uri uri=Uri.parse("tel:0933422567");
         Intent i=new Intent(Intent.ACTION_VIEW,uri);
         startActivity(i);
     }
};
//  使用相機
private Button.OnClickListener _OnbuttonCameraClick = new Button.OnClickListener(){
     public void onClick(View v){
         if (D) Log.d(TAG, "_OnbuttonCameraClick");
         Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
         startActivity(i);
     }
};
//  啟用地圖
private Button.OnClickListener _OnbuttonGMapClick = new Button.OnClickListener(){
     public void onClick(View v){
         if (D) Log.d(TAG, "_OnbuttonGMapClick");
         Uri uri = Uri.parse("geo:25.048,121.532");
         Intent i = new Intent(Intent.ACTION_VIEW, uri);
         startActivity(i);
     }
};
//  開啟影像
private Button.OnClickListener _OnbuttonImageClick = new Button.OnClickListener(){
     public void onClick(View v){
         if (D) Log.d(TAG, "_OnbuttonImageClick");
         Intent i = new Intent(Intent.ACTION_GET_CONTENT);   
         i.addCategory(Intent.CATEGORY_OPENABLE);   
         i.setType("image/*"); 
         startActivityForResult(i, 0);
     }
};
//  開啟聯絡人
private Button.OnClickListener _OnbuttonPeopleClick = new Button.OnClickListener(){
     public void onClick(View v){
         if (D) Log.d(TAG, "_OnbuttonPeopleClick");
         Intent i = new Intent(Intent.ACTION_VIEW, People.CONTENT_URI); 
         startActivity(i);
     }
};
//  開啟 Android Market
private Button.OnClickListener _OnbuttonMarketClick = new Button.OnClickListener(){
     public void onClick(View v){
         if (D) Log.d(TAG, "_OnbuttonMarketClick");
         // 尋找某個應用程式 
         Uri uri = Uri.parse("market://search?q=dropbox"); 
         Intent it = new Intent(Intent.ACTION_VIEW, uri); 
         startActivity(it);
     }
};
3.測試結果
app主介面
image
開啟網頁
image
撥打電話

至於相機就要到實機上動作,模擬器無法實現相機!

沒有留言:

張貼留言

請留言~一起討論吧~