Android 手機程式 -- Intent 的用法列表範例

Android

簡介

使用方法

開發工具

開始寫程式

視覺化介面

視覺元件

對話元件

核心物件

事件處理

資料儲存

查詢功能

影音功能

繪圖功能

網路功能

衛星地圖

特殊功能

資源管理

裝置管理

系統核心

問題與回答

刷機升級

常用軟體

Eclipse

教學錄影

訊息

相關網站

參考文獻

最新修改

簡體版

English

專案下載:IntentTest.zip

Android 中的 Intent 非常好用,整個 Android 的架構最大的特色可以說就建構在 Intent 上,您可以利用類似 URL 的 Intent 啟動任何一個程式的任何一個畫面。為了讓大家能更容易的使用並交流 Intent,甚至有人發起了一個 OpenIntents 組織,讓全世界的可以為自己的應用程式註冊 Intent。以下是筆者所蒐集的一些常用 Intent 格式的列表,以及使用這些 Intent 的範例程式。

Intent 的用法列表

URI [Action] 說明
http(s):web_address [VIEW] 顯示網頁
"" [WEB_SEARCH] 顯示瀏覽器
http(s):web_address [WEB_SEARCH] 開啟檔案
tel: phone_number [CALL] 直接撥電話
tel: phone_number [DIAL] 顯示撥號介面
geo:latitude,longitude [VIEW] 顯示撥號介面
geo:latitude,longitude?z=zoom [VIEW] 顯示地圖
geo:0,0?q=my+street+address [VIEW] 顯示地圖
geo:0,0?q=business+near+city [VIEW] 顯示地圖
google.streetview:cbll=lat,lng& cbp=1,yaw,,pitch,zoom&mz=mapZoom [VIEW] 顯示街景
[MediaStore.ACTION_IMAGE_CAPTURE] 啟動相機
file:/sdcard/song.mp3 [ACTION_VIEW] 啟動該檔案
market:search?q=pname:pkg_name [ACTION_VIEW] 搜尋商場
market://details?id=pkg_name_or_app_id [ACTION_VIEW] 軟體資訊
People.CONTENT_URI [ACTION_VIEW] 聯絡人清單

執行結果

IntentTestRun.png

程式範例

檔案:src/ccc/test/IntentTest.java

package ccc.test;
 
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.Contacts.People;
import android.view.View;
import android.widget.Button;
 
public class IntentTest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        Button buttonUrl = (Button) findViewById(R.id.ButtonUrl);
        Button buttonEmail = (Button) findViewById(R.id.ButtonEmail);
        Button buttonTel = (Button) findViewById(R.id.ButtonTel);
        Button buttonCamera = (Button) findViewById(R.id.ButtonCamera);
        Button buttonGMap = (Button) findViewById(R.id.ButtonGMap);
        Button buttonImage = (Button) findViewById(R.id.ButtonImage);
        Button buttonPeople = (Button) findViewById(R.id.ButtonPeople);
        Button buttonMarket = (Button) findViewById(R.id.ButtonMarket);
        buttonUrl.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
                Uri uri=Uri.parse("http://www.google.com.tw");
                Intent i=new Intent(Intent.ACTION_VIEW,uri);
                startActivity(i);
            }
        });
        buttonEmail.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
                Uri uri=Uri.parse("mailto:ccc@nqu.edu.tw");
                Intent i=new Intent(Intent.ACTION_SENDTO,uri);
                startActivity(i);
            }
        });
        buttonTel.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
                Uri uri=Uri.parse("tel:082313532");
                Intent i=new Intent(Intent.ACTION_VIEW,uri);
                startActivity(i);
            }
        });
        buttonCamera.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
                Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivity(i);
            }
        });
        buttonGMap.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
              Uri uri = Uri.parse("geo:25.048,121.532");
              Intent i = new Intent(Intent.ACTION_VIEW, uri);
              startActivity(i);
            }
        });         
        buttonImage.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
              Intent i = new Intent(Intent.ACTION_GET_CONTENT);    
              i.addCategory(Intent.CATEGORY_OPENABLE);    
              i.setType("image/*");  
              startActivityForResult(i, 0);                
            }
        });         
        buttonPeople.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
                Intent i = new Intent(Intent.ACTION_VIEW, People.CONTENT_URI);  
                startActivity(i);  
            }
        });         
        buttonMarket.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
              // 尋找某個應用程式  
              Uri uri = Uri.parse("market://search?q=dropbox");  
              Intent it = new Intent(Intent.ACTION_VIEW, uri);  
              startActivity(it);  
            }
        });         
    }
}

檔案:res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/MainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Button
android:id="@+id/ButtonUrl"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="http://www.google.com.tw"
>
</Button>
<Button
android:id="@+id/ButtonEmail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="mailto:ccc@nqu.edu.tw"
>
</Button>
<Button
android:id="@+id/ButtonTel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="tel:082313532 (view)"
>
</Button>
<Button
android:id="@+id/ButtonCamera"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Camera"
>
</Button>
<Button
android:id="@+id/ButtonGMap"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="geo:25.048,121.532"
>
</Button>
<Button
android:id="@+id/ButtonImage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="image/*"
>
</Button>
<Button
android:id="@+id/ButtonPeople"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="People.CONTENT_URI"
>
</Button>
<Button
android:id="@+id/ButtonMarket"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="market://search?q=dropbox"
>
</Button>
</LinearLayout>

參考文獻

  1. Intents List: Invoking Google Applications on Android Devices — http://developer.android.com/guide/appendix/g-app-intents.html
  2. Intent 用法大公開 — http://ysl-paradise.blogspot.com/2008/12/intent.html
  3. OpenIntents — http://www.openintents.org/en/
  4. android intent和intent action大全 — http://www.360doc.com/content/10/1018/08/111369_61908478.shtml

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License