我們已經瞭解瞭如何在自己的單個應用中調用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的專欄