Android Intent 建國科技大學 資管系 饒瑞佶 2011/1.

Slides:



Advertisements
Similar presentations
Android ADT + Android SDK Eclipse Eclipse 編輯器 JAVA JAVA 開發工具.
Advertisements

認識食品標示 東吳大學衛生保健組製作.
Android开发入门 -----第一个Android程序 主讲:李晓蕾
颞下颌关节常见病.
清代章回小說----儒林外史 製作群:侑桂、品希、萱容、怡靜、佩涓、凸凸.
致理科技大學保險金融管理系 實習月開幕暨頒獎典禮
結腸直腸腫瘤的認知.
經歷復活的愛 約翰福音廿一1-23.
郭詩韻老師 (浸信會呂明才小學音樂科科主任)
Android环境搭建 倚动软件工厂实验室 网络课程地址:
實驗五:多媒體播放器選單介面.
Part 2 開發Android應用程式的流程
位置與地圖應用 此投影片為講解Android如何取得定位經緯度和使用Google Map地圖.
2. 戰後的經濟重建與復興 A. 經濟重建的步驟與措施 1.
好好學習 標點符號 (一) 保良局朱正賢小學上午校.
Activity之间的数据传递.
ArrayAdapter & Spinner
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
使用Android Studio 開發Android App 靜宜大學資管系 楊子青
建立Android新專案 建國科技大學 資管系 饒瑞佶 2010/10.
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
APP課程:Android程式設計開發環境與工具介紹
4. 聯合國在解決國際衝突中扮演的角色 C. 聯合國解決國際衝突的個案研究.
新陸書局股份有限公司 發行 第十九章 稅捐稽徵法 稅務法規-理論與應用 楊葉承、宋秀玲編著 稅捐稽徵程序.
實驗四:單位轉換程式.
第2章 建立Android應用程式 2-1 Java語言、XML文件與Android 2-2 建立第一個Android應用程式
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
民法第四章:權利主體 法人 楊智傑.
實驗十三:顯示目前經緯度位置.
Ch06 再談選單元件 物件導向系統實務.
ANDROID與OSGI平台整合.
使用Android控制Arduino 史先强
Android程式開發準備 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
Android開發環境建置與設定 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第10章 App微信分享的实现 倚动实验室.
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
第8章 Android内容提供者(ContentProvider)应用
Android智慧型手機程式設計實務應用班
Ch5 Android應用程式的主要組成.
Chapter 7 Android應用元件 Android應用元件可以幫助我們獲得系統資源訊息(ActivityManager)、提供系統服務(Service)、搜尋系統服務(SearchManager)、監聽Intent訊息(Broadcast Receiver)以及資料共享(ContentProvider和ContentResolver)。
Android介面設計 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
第4章 Android生命周期.
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
ANDROID PROGRAMMING2.
CH7 佈局、按鈕與文字編輯元件.
Android + Service 建國科技大學 資管系 饒瑞佶.
實驗十四:顯示與控制地圖.
第2讲 移动应用开发基础知识(二) 宋婕
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
Android 视频教程简介.
Android檔案處理 建國科技大學 資管系 饒瑞佶 2010/10.
Android SDK工具 建國科技大學 資管系 饒瑞佶 2011/1.
四年級 中 文 科.
使用Android模拟器 本讲大纲: 1、模拟器概述 2、Android虚拟设备和模拟器 3、Android模拟器启动与停止 4、控制模拟器
Intent.
網路應用.
聖誕禮物 歌羅西書 2:6-7.
Chapter 5 Basic UI Design.
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
實驗九:延續實驗八, 製作一個完整音樂播放器
Location Based Services - LBS
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
實驗十六:匯出APK安裝檔與軟體上架.
依撒意亞先知書 第一依撒意亞 公元前 740 – 700 (1 – 39 章) 天主是宇宙主宰,揀選以民立約,可惜他們犯罪遭
活動啟動器 (ActivityStarter) 靜宜大學資管系 楊子青
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
第9章 BroadcastReceiver的使用
Android进程间通讯.
經文 : 創世紀一章1~2,26~28 創世紀二章7,三章6~9 主講 : 周淑慧牧師
Part 8 Broadcast Receiver、Service和App Widget
Presentation transcript:

Android Intent 建國科技大學 資管系 饒瑞佶 2011/1

Android Intent (I) Android的事件處理機制稱為「Intent」 Intent 的作用與事件(event)很像,但與傳統的事件處理仍然有些差異 傳統的事件處理,講求的是「處理者(handler)的觸發」,當一事件發生時,便callback事件的處理者,或是直接將該事件forward給應用程式,由應用程式處理 在Intent裡,Android 將事件看成「應用程式的意圖」或「使用者的意圖」,並去解釋該意圖的目的,若 Android 系統本身能理解應用程式的意圖,便會「自行」去處理該意圖所應執行的工作

Android Intent (II) Android的做法是讓每個Intent都帶有一個action,並根據不同的action去進行需要的處理 Android內部有許多內建的action,例如「ACTION_VIEW」,用來「檢視」(view)一個「URI」資料,當Android看到「ACTION_VIEW」時,便「自行」依據資料(data)處理(action)該Intent,處理的方式隨data不同而不同 Intent intent=new Intent(action,data) data範例 http://  開啟瀏覽器 geo: 開啟Google Maps tel:  撥電話

Android Intent (III) Android內建的Intent action分為二種: Activity Action: 啟動Activity的action Broadcast Action: 透過廣撥器處理的action 另外,可自行定義一個Intent,設定可接收此Intent的Service(這就是Action),並透過「送出Intent」的方式,請Android啟動該Service 除了action外,Intent還包含「data」 Intent的action指定這個Intent的「動作」是什麼,Android會依指定的動作進行處理;但有些action可以附帶資料(data),這個資料是以URI的格式撰寫

ACTION_VIEW

範例一、內建的動作“ACTION_VIEW” 可以在 Android 應用程式裡顯示自已的 HTML 文件,或是線上的網頁 data格式 http://網址

不用“ACTION_VIEW” 建立新專案: HelloWeb

不用“ACTION_VIEW” HelloWeb.java 程式 loadData() 的參數如下: 第一個參數:HTML 內容 第二個參數:MimeType 類型,指定為 text/html,即 HTML 類型文件 第三個參數:文字編碼方法,指定為 utf-8(Unicode) HelloWeb.java 程式 使用HTML標籤當參數

不用“ACTION_VIEW” main.xml

不用“ACTION_VIEW”

不用“ACTION_VIEW” HelloWeb.java 程式 loadData() 的參數如下: 第一個參數:HTML 內容 第二個參數:MimeType 類型,指定為 text/html,即 HTML 類型文件 第三個參數:文字編碼方法,指定為 utf-8(Unicode) HelloWeb.java 程式 使用網址當參數

不用“ACTION_VIEW”

不用“ACTION_VIEW” androidmanifest.xml裡,需要加入 的權限才能上 android.permission.INTERNET android.permission.ACCESS_NETWORK_STATE 的權限才能上

不用“ACTION_VIEW” 如果使用emulator還是不能上網,可能是DNS問題,請 執行:adb shell 輸入:getprop 輸入:setprop net.dns1 168.95.1.1 這是目前DNS設定 請改成一個可以用的 例如中華電信168.95.1.1

使用內建的動作“ACTION_VIEW” data action

使用內建的動作“ACTION_VIEW”

範例二、利用Intent 玩Google Maps 建立新專案: HelloMaps 沒有Google APIs target

範例二、利用Intent 玩Google Maps 如果沒有Google APIs target 請選擇Available packages進行安裝

範例二、利用Intent 玩Google Maps 安裝完Google APIs target畫面

範例二、利用Intent 玩Google Maps 建立新專案: IntentMaps

顯示Google Maps地圖 都是ACTION_VIEW,但資料格式不同

範例二、利用Intent 玩Google Maps AVD也要對應具備Google APIs功能

範例二、利用Intent 玩Google Maps 增加 <uses-permission android:name="android.permission.INTERNET" />

範例二、利用Intent 玩Google Maps

範例二、利用Intent 玩Google Maps Google Maps URI 格式: geo:latitude,longitude geo:latitude,longitude?z=zoom geo:0,0?q=my+street+address geo:0,0?q=business+near+city Google Streetview URI 格式: google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom

範例二、利用Intent 玩Google Maps 顯示地圖 Uri uri = Uri.parse("geo:38.899533,-77.036476"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); 路徑規劃 Uri uri = Uri.parse("http://maps.google.com/maps? f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); //where startLat, startLng, endLat, endLng are a long with 6 decimals like: 50.123456

ACTION_CALL

範例二、HelloIntentDialer action: ACTION_CALL 執行步驟: 1. 先產生一個Intent物件:  Intent dial = new Intent(); 2. 設定Intent的action為「android.intent.action.CALL」,這是一個內建的action:  dial.setAction("android.intent.action.CALL"); 內建action「CALL」需要附帶一筆資料,而資料的寫法是使用URI格式:  dial.setData(Uri.parse("tel:119")); 4. 「CALL」是一個activity action,所以呼叫startActivity()向Intent送給框架:  startActivity(dial);

範例二、HelloIntentDialer HelloIntentDialer.java的完整程式 http://www.jollen.org/blog/2009/08/jollen-android-programming-27.html

範例二、HelloIntentDialer 因為permission的關係,所以也要在AndroidManifest.xml裡加上「CALL_PHONE」的權限。AndroidManifest.xml的完整內容如下

??HelloIntentMusic 使用者按下「Select Music」後,可以由音樂清單裡選擇音樂並撥放 action: ACTION_GET_CONTENT http://blogold.chinaunix.net/u1/44301/showart_2360056.html

利用Intent切換Activity 獨立的Activity

切換Activity 使用Eclipse建立新專案 Project Name=Jao Application Name=MyButton Package Name=com.android.jao Create Activity= Jao

main.xml

Close application按鈕程式 1 main.xml中的android:id屬性 2 3

切換Activity 建立對應的新畫面sample_page.xml 建立對應的程式sample_page.java res/layout/sample_page.xml 建立對應的程式sample_page.java src/com.example.android.button/ sample_page.java 在AndroidManiFest.xml中加入Activity

切換Activity 建立對應的畫面sample_page.xml 2 1

按鈕元件切換Activity 建立對應的畫面sample_page.xml 複製main.xml的結構

按鈕元件切換Activity 建立對應的畫面sample_page.xml

按鈕元件切換Activity 建立對應的程式sample_page.java

按鈕元件切換Activity 建立對應的程式sample_page.java 1 2

按鈕元件切換Activity 建立對應的程式sample_page.java 輸入activity 3 4

按鈕元件切換Activity 建立對應的程式sample_page.java 5

按鈕元件切換Activity 建立對應的程式sample_page.java 出現基本結構 複製HelloBMI.java內的程式 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.Sample_page); } 這裡要改

按鈕元件切換Activity 建立對應的程式sample_page.java 1 2 3 4

按鈕元件切換Activity 建立對應的程式sample_page.java

按鈕元件切換Activity 加入從Jao.java呼叫sample_page.java 先在main.xml加入一個按鈕

按鈕元件切換Activity 在Jao.java加入呼叫按鈕與程式

按鈕元件切換Activity 在AndroidManifest.xml中加入Activity 1

按鈕元件切換Activity 在AndroidManifest.xml中加入Activity 2

按鈕元件切換Activity 在AndroidManifest.xml中加入Activity 3

按鈕元件切換Activity 在AndroidManifest.xml中加入Activity 4 5

按鈕元件切換Activity 在AndroidManifest.xml中加入Activity

按鈕元件切換Activity 在AndroidManifest.xml中加入Activity

執行按鈕元件切換Activity 解決” Unparsed aapt error(s)! Check the console for output” 問題(如果有)

執行按鈕元件切換Activity

執行按鈕元件切換Activity

執行按鈕元件切換Activity

執行按鈕元件跳頁

利用Intent切換Activity 相依的Activity

修改HelloBMI 相依的Activity:有資料傳遞 加入新Activity:Report.java 原Activity(HelloBMI.java):輸入頁面 輸入身高與體重值 新Activity(Report.java):結果頁面 接收身高與體重值,計算並顯示結果

修改HelloBMI-加入class 相

修改HelloBMI-加入介面xml 相

修改HelloBMI-修改AndroidManifest.xml 相

修改HelloBMI 相

更多Intent 更多Intent http://iceskysl.1sters.com/?p=462 http://ysl-paradise.blogspot.com/2008/12/intent.html http://iceskysl.1sters.com/?p=462

AndroidManifest.xml Eclipse中專案/AndroidManifest.xml 定義整個專案程式用到的資源清單 尤其是intentfilter這部分

AndroidManifest.xml Activity class名稱 程式進入點的名稱空間 程式版本 應用程式顯示名稱 應用程式顯示icon 本activity是程式進入點 程式會出現在應用程式列表 SDK版本