Android藍芽聊天室 SDK內的範例程式

Slides:



Advertisements
Similar presentations
從 Android SDK 3.0 開始增加了 2 個新的類別: Fragment 與 Action Bar 。 Fragment 提供不同佈局畫面的另一種用法,但 設計更有彈性,更能針對螢幕大小變化,採用 最合適的設計,例如對較大螢幕的平板裝置, 它可以在一個活動的畫面同時顯示 2 個 Fragment.
Advertisements

Android ADT + Android SDK Eclipse Eclipse 編輯器 JAVA JAVA 開發工具.
第2章  Android应用的界面编程.
中医养生康复学绪论 任课教师:刘 婕 单 位:郑州工业应用技术学院 联系电话: ;
我征服了黃山 林達的黃山之旅 2006春.
2017/3/6 WIRESHARK 的安裝與基本操作.
第13章 繪圖與多媒體 13-1 顯示圖檔-行動相簿 13-2 音樂播放-音樂播放器 13-3 影片播放-視訊播放器
第一章 Android简介与环境搭建 QQ号: QQ群: (Android编程入门) 网络资源:
中国(成都)斯宝特房地产营销策划有限公司 2007年5月22日
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
實驗五:多媒體播放器選單介面.
Part 2 開發Android應用程式的流程
102學年度預算編製說明會 主辦單位:會計室 102/02/22.
應用於嵌入式系統之網路連線介面協定.
簡易送審動態案件網 路報送作業操作訓練 資料來源 銓敘部製作 報告人 饒瑞恭 日 期: 101 年 6 月 15 日.
Activity之间的数据传递.
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
使用Android Studio 開發Android App 靜宜大學資管系 楊子青
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
實驗四:單位轉換程式.
第2章 建立Android應用程式 2-1 Java語言、XML文件與Android 2-2 建立第一個Android應用程式
第9课 北美大陆上的新体制 导入新课 新课教学 课堂小结 知识结构 巩固练习
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
實驗十三:顯示目前經緯度位置.
Ch06 再談選單元件 物件導向系統實務.
使用Android控制Arduino 史先强
Basis基本操作、使用者 管理與權限設定
Android資料庫處理 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
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生命周期.
ContentProvider與資料共享
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
Android + Service 建國科技大學 資管系 饒瑞佶.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
專題報告 組員:吳家齊,江弘喻.
實驗十四:顯示與控制地圖.
第2讲 移动应用开发基础知识(二) 宋婕
常见问题解答 II. App上重置并清空数据库之后,手机app找不到圣诞灯怎么办? I. 打开APP,发现并连接不了圣诞灯怎么办?
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第8章 Service解析.
Android 视频教程简介.
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
Intent.
東部海岸 馬蘭國小 五年己班 閔芳頤 Enter
Android 开发入门.
資料庫 靜宜大學資管系 楊子青.
指 導 老 師 : 王 文 彥 老 師 組 員 : 4970E099 吳 家 齊 4970E023 江 弘 喻 4970E024 梁 森 凱
京都楓采 by 王南焜 林淑玹 按鍵換頁 請開音響!.
Broadcast System For Mobile Device
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
主编:钟元生 赵圣鲁.
注音輸入法教學 大華技術學院資管系 指導老師:陳信如老師 學生:王麗嵐.
實驗九:延續實驗八, 製作一個完整音樂播放器
Location Based Services - LBS
進階UI元件:Spinner與接合器 靜宜大學資管系 楊子青
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
合歡山 馬蘭國小 五年己班 何宜倞 ENTER.
生命教育 媒材應用分享 電影 天外奇蹟(UP) 華盛頓高中 巫孟容.
中国农业科学院博士后学术论坛 博士后基金申请的经验及体会 中国农业科学院生物技术研究所 秦 华 博士
實驗十六:匯出APK安裝檔與軟體上架.
所得稅法第14條、第126條修正條文 薪資所得計算方式二擇一 定額減除 特定費用減除 維持現行薪資所得特別扣除額20萬元減除方式
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
第9章 BroadcastReceiver的使用
Android进程间通讯.
Part 8 Broadcast Receiver、Service和App Widget
進階UI元件:Spinner與接合器 靜宜大學資管系 楊子青
Presentation transcript:

Android藍芽聊天室 SDK內的範例程式 建國科技大學 資管系 饒瑞佶 2013/7 V1

Android 2.2 SDK

Android藍芽聊天室 BluetoothChat.java:主畫面,顯示聊天訊息與設定藍芽 BluetoothChatService.java:藍芽傳輸service,包含三個主要thread: AcceptThread:負責監聽藍芽socket ConnectThread:負責藍芽socket連線 ConnectedThread:藍芽連線後通訊程序 DeviceListActivity.java:搜尋藍芽設備介面

AndroidManiFest.xml

layout ListView 從下往上顯示 android:stackFromBottom="true" TextView Button

BluetoothChat.java onCreate: onStart: onResume:恢復service 判斷設備是否支援藍芽 取得BluetoothAdapter:mBluetoothAdapter onStart: 透過BluetoothAdapter判斷藍芽是否開啟+ onActivityResult() 呼叫setupChat() onResume:恢復service onDestroy:停止service

BluetoothChat.java setupChat(): 設定arrayadapter用以顯示對話資訊(對應到listview) 監聽輸入框enter事件(按軟體鍵盤enter也可以送出) mOutEditText.setOnEditorActionListener(mWriteListener); 設定送出按鈕 取得mChatService = new BluetoothChatService(this, mHandler); 取得service對應狀態 BluetoothChatService.java

BluetoothChat.java sendMessage: 使用mChatService判斷是否連線 送出資訊 byte[] send = message.getBytes(); mChatService.write(send);

BluetoothChat.java onCreateOptionsMenu:建立menu選項 onOptionsItemSelected:設定menu對應事件 掃描:DeviceListActivity.class + onActivityResult() 可被發現:ensureDiscoverable() Handler mHandler:處理對話訊息的進出

BluetoothChatService.java 全部共3個thread AcceptThread:負責監聽藍芽socket /** * This class does all the work for setting up and managing Bluetooth * connections with other devices. It has a thread that listens for * incoming connections, a thread for connecting with a device, and a * thread for performing data transmissions when connected. */ 全部共3個thread AcceptThread:負責監聽藍芽socket ConnectThread:負責藍芽socket連線 ConnectedThread:藍芽連線後通訊程序

BluetoothChatService.java 建構子: start(): 取得BluetoothAdapter :mAdapter start(): 對應AcceptThread 從BluetoothChat.java的onResume()呼叫 connect(BluetoothDevice device) : 對應ConnectThread 從BluetoothChat.java的onActivityResult內的case REQUEST_CONNECT_DEVICE呼叫 connected(BluetoothSocket socket, BluetoothDevice device) : 從BluetoothChatService.java的AcceptThread呼叫

android:theme="@android:style/Theme.Dialog" DeviceListActivity.java 在AndroidManifest.xml中設定android:theme android:theme="@android:style/Theme.Dialog" 將一個Activity顯示為能話框模式

android:theme

DeviceListActivity.java http://www.cnblogs.com/salam/archive/2010/11/30/1892143.html // Setup the window requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

DeviceListActivity.java onCreate: onDestroy() 設定arrayadapter用以顯示配對(mPairedDevicesArrayAdapter)與未配對的設備(mNewDevicesArrayAdapter) 設定BroadcastReceiver(mReceiver),用以接收設備搜尋完畢 取得BluetoothAdapter (mBtAdapter) 設定按鈕進行doDiscovery() onDestroy() 取消BluetoothAdapter (mBtAdapter)

DeviceListActivity.java OnItemClickListener: 取得所選設備MAC intent.putExtra(EXTRA_DEVICE_ADDRESS, address); 回到BluetoothChat.java中的onActivityResult,並取得設備MAC String address = data.getExtras().getString(DeviceListActivity.EXTRA_DEVICE_ADDRESS);