星期日, 10月 09, 2011

Bluetooth (三)

Android應用程式學習筆記

Setting Up Bluetooth

在你的應用程式用藍芽通訊之前,你需要驗證裝置支援藍芽,然後確認它是否可用。

如果沒支援藍芽,你應該優雅地停止任何藍芽屬性。如果支援藍芽,但停用的,你可以不用離開應用程式的情況下,請求用戶啟用藍芽裝置。啟用的過程由兩個步驟建立,使用BluetoothAdapter。


  1. 取得BluetoothAdapter
    BluetoothAdapter是任何及所有藍芽Activity需要的,呼叫靜態的getDefaultAdapter()方法取得BluetoothAdapter,此方法回傳的BluetoothAdapter表示裝置本身自己的藍芽適配器(藍芽電台),還有一個負責整個系統的藍芽適配器,你的應用程式可以使用回傳的適配器與負責整個系統的適配器互動。如果getDefaultAdapter()回傳直視null,表示裝置不支援藍芽。

    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (mBluetoothAdapter == null) {
        // Device does not support Bluetooth
    }
  2. 啟用藍芽
    接下來就需要確認藍芽適可用的,呼叫isEnable()方法檢驗目前是否有可用的藍芽,如果回傳值為false,藍芽是未啟用的,呼叫startActivityForResult()方法並傳入參數動作值ACTION_REQUEST_ENABLE的意圖物件,請求藍芽功能啟用,這將發出一個請求,通過系統設定啟用藍芽功能。

    if (!mBluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    }

    對話框顯示請求用戶權限來啟用藍芽功能,如果用戶回應"Yes",系統將開始啟用藍芽功能,程序完成後(或是失敗)焦點會再回到應用程式。

    如果啟用藍芽功能成功,你的Activity就在onActivityResult()回呼方法中接收到RESULT_OK,如果藍芽功能啟用失敗(或是用戶回應"No"),接收到RESULT_CANCELED。
另外可選,你的應用程式也可以監聽ACTION_STATE_CHANGED廣播意圖,藍芽狀態改變時系統將會廣播出去,廣播包括EXTRA_STATE、EXTRA_PREVIOUS_STATE,分別為新的和舊的藍芽狀態,其他可能值有STATE_TURNING_ON、STATE_ON、STATE_TURNING_OFF、STATE_OFF,監聽廣播幫助你的應用程式在運行時偵測藍芽的狀態。


沒有留言:

張貼留言