Android 程式開發:(二)使用意圖 —— 2.5 使用Intent調用內置應用程序

我們已經瞭解瞭如何在自己的單個應用中調用activity。但是,android開發中比較重要的一點,就是使用intent調用其他應用的activity。特別地,你的應用可以調用系統中的許多“內置”應用。所謂的“內置”應用,指的就是系同級別的應用,比如Browser,Phone,Sms等等。舉個例子,如果你的應用需要打開一個網頁,可以使用Intent對象去調用瀏覽器,瀏覽器把網頁顯示出來,而不是要自己創建一個瀏覽器。。。
 
下面的例子展示如何調用系統中的幾個比較常用的“內置”應用。
 
 
1.創建一個叫Intents的工程。
 
工程目錄:
 
 

 
 
2.main.xml中的代碼。
 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
 
    <Button 
        android:id="@+id/btn_webbrowser" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:onClick="onClickWebBrowser" 
        android:text="Web Browser" /> 
 
    <Button 
        android:id="@+id/btn_makecalls" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:onClick="onClickMakeCalls" 
        android:text="Make Calls" /> 
 
    <Button 
        android:id="@+id/btn_showMap" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:onClick="onClickShowMap" 
        android:text="Show Map" /> 
 
    <Button 
        android:id="@+id/btn_launchMyBrowser" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:onClick="onClickLaunchMyBrowser" 
        android:text="Launch My Browser" /> 
 
</LinearLayout> 
3.IntentsActivity.java中的代碼。package net.learn2develop.Intents; 
 
import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
 
public class IntentsActivity extends Activity { 
 
    int request_Code = 1; 
 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
    } 
 
    public void onClickWebBrowser(View view) { 
        Intent i = new Intent("android.intent.action.VIEW"); 
        i.setData(Uri.parse("http://www.amazon.com")); 
        startActivity(i); 
    } 
 
    public void onClickMakeCalls(View view) { 
        Intent i = new Intent(android.content.Intent.ACTION_DIAL, 
                Uri.parse("tel:+651234567")); 
        startActivity(i); 
 
    } 
 
    public void onClickShowMap(View view) { 
        Intent i = new Intent(android.content.Intent.ACTION_VIEW, 
                Uri.parse("geo:37.827500,-122.481670")); 
        startActivity(i); 
 
    } 
 

4.調試。

 

效果圖:

程序啟動之後:

點擊WebBrowser按鈕:

點擊MakeCalls按鈕:

 作者 manoel的專欄
 

發佈留言