基于藍牙的可自學習手機遙控器android應用

zengwenbo 8年前發布 | 14K 次閱讀 安卓開發 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

 

 本文由用戶 zengwenbo 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!