基于藍牙的可自學習手機遙控器android應用
android功能:藍牙通信、手機遙控器、紅外編碼、可自學習紅外編碼
大家可以看下圖片是否是您的需要
該軟件含有一個程序包com.ds.IrDA。該程序包含有6個 Java 文件,其中主要的有5個java文件,下面會依次介紹。另外還有3個xml顯
示文件,主要的有client.xml實現操作界面,device.xml顯示搜索到的藍牙列表。主要就是藍牙通信,并且利用 Android 里里面最簡單
的存儲方式SharedPreferences來存取自學習到的紅外編碼。點擊學習按鈕后,按一下你想學習的那個按鍵然后將該按鍵的編碼傳過
來,學習完了,它會自動提示學習完畢的,你可以自己點學習完畢提前結束學習,當然編碼肯定不是你手動輸入的,而是你通過紅
外接收器量化電平后輸出的編碼。
(1)ClientAvtivity.java是客戶端界面的activity,主要功能是實現搜索、畫圖、命令發送的和數據接收的顯示。
1、點擊“開始搜索”鍵執行以下代碼。
轉到DeviceListActivity.java進行藍牙設備的搜索和顯示。
2、協議列表的建立和選擇
3、打開客戶端界面時的存儲數據讀取操作,存儲方式為SharedPreferences。
4、各類按鍵的操作設定
5、學習鍵的設定
6、編碼名添加鍵的設定
7、學習完畢鍵的設定
8、廣播接收的各類響應代碼如下,實現對其他java文件廣播事件的處理,其中包括對自學習紅外編碼數據的接收。
9、紅外編碼數據的發送,通過進行發送隱式intent讓相應廣播器接收處理
10、對選擇設備的響應接收,創建藍牙設備列表的activity時是用startActivityForResult()方法,所以可通過onAcitvityResult方法來接收返回的數據,即選擇的藍牙設備名和地址。
(2)DeviceListActivity.java,實現的功能是顯示搜索到的藍牙設備。
1、注冊廣播接收,并建立ListView來顯示藍牙設備
2、 廣播接收處理,處理找到設備和藍牙搜索結束的廣播
3、處理藍牙設備選擇的觸屏選擇
(3)BluetoothClientService.java主要實現客戶端界面后臺的各項功能,包括數據發送和接收,藍牙設備的查找,并注冊相應的廣播接收來響應相應的信息,又通過發送廣播將信息傳輸出去。
1、打開藍牙適配器,開始搜索
2、發現藍牙設備后,發送廣播告知DeviceListActivity.java。
3、廣播接收器的注冊,從中可以看到這個service具體處理的廣播信號
4、 接收數據的處理,根據接收字節流的前兩個字節判定接收的數據是屬于哪一類型,例如發送的反饋,自學習的命令。其中包括新建txt 文件存儲自學習的紅外編碼字節流,通過study_order確定每個按鍵編碼在txt文件里的起始位置,通過study_num存儲每個按鍵編碼在txt文件里的字節長度
5、調用通信進程發送數據,如果選擇的是自學習紅外協議,通過打開存儲文件根據study_order和study_num找到相應的按鍵編碼,再進行發送。
(4)BluetoothClientConnThread.java建立一個藍牙設備連接進程,主要實現藍牙設備的連接,建立通信信道。
(5)BluetoothCommunThread.java是通信進程,用于具體數據的接收和發送
在這個文件中存儲了NEC協議的編碼,當選擇的是NEC編碼時,會直接從該文件中讀取編碼命令。
1、NEC協議編碼的設定
2、Converse函數,將0、1二進制數轉化為本次項目需要的顯示電平時長的編碼。
3、實現數據的接收
4、實現紅外編碼的發送
好了,基本就這些了,這些都是之前寫的工程了,圖片也是之前寫傻瓜書時截的,若有什么不明白的可以把工程下下來看
來自:http://www.jianshu.com/p/d6493cb555f4