2016年6月14日 星期二

Android系統控制藍芽A2DP裝置

前一陣子著手寫android系統控制藍芽(Serial Port Profile)透過另一個藍芽(SPP)去接收另一個裝置的資料後, 想到家裡有A2DP 的喇吧, 想說若是要測試這種喇吧是否可以寫一個控制的APP去連上這個裝置然後控制左聲道發聲, 右聲道無聲,  量測左聲道, 反之, 右聲道發聲,  左聲道無聲, 量測右聲道.
設定研究目標:
1. 手機藍芽連上藍芽A2DP裝置
2. 透過藍芽撥放1KHz tone
3. 聲音左右聲道控制
程式架構:
1. 開啟藍芽
2. 搜尋藍芽裝置

3. 配對與連接此音箱裝置








4. 設定播放參數與聲音檔
mPlayer = new MediaPlayer();
String file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)+"/1K.mp3";
mPlayer.setDataSource(new FileInputStream(file).getFD());
mPlayer.setAudioStreamType(mAudioManager.STREAM_MUSIC);
mPlayer.setVolume(1.0f, 0f);
mPlayer.prepare();
mAudioManager.setStreamVolume(mAudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(mAudioManager.STREAM_MUSIC), 1);
mPlayer.start();
5. 測試




2016年6月5日 星期日

手機或平板利用藍芽接收24G雷達感測器資料

接續 Arduino利用藍芽模組接收24G雷達感測器資料這篇文章把原本是用NB接收資料做處理的功能變成用android 手機或者是平板來接收資料!
給之前沒接觸的朋友兩點建議
1. 先了解android程式框架, 語法可以邊寫邊學(編譯器會幫你除錯)
2. 認識藍芽的基本架構( 你要連接哪一種 profile)
[Android]藍牙主動發起配對實例這裡是網路覺得很有用的文章
在寫這個 APP花最多時間的是 決定哪一種畫面來顯示你要的結果, 結果利用TabHost這類 來做畫面的處裡(雖然這類已經被android遺棄, 但還是可以用)
決定操作方式後就開始撰寫程式
1. 藍牙設定頁面包括開啟BT按鈕, 搜尋BT按鈕, 送command edittext和按鈕, 接收資料並顯示
2. Show Data 頁面包含接收資料按鈕, 接收資料並顯示, 時間注示, 圖形顯示

上面兩張圖是在兩台不同廠牌的平板執行畫面.
底下為整個執行影片