Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android藍牙API之BluetoothAdapter類(2)

Android藍牙API之BluetoothAdapter類(2)

編輯:Android開發實例

從Android 2.0開始提供最全面的藍牙開發接口,API Level為5的系統才能調用,目前Android Bluetooth API包含了主要以下幾類:BluetoothAdapter
BluetoothDevice、BluetoothSocket 、BluetoothServerSocket 和BluetoothClass 它們均在android.bluetooth這個包中出現。

  我們調用時除了需要考慮API Level至少為5外,還需注意添加相應的權限,比如使用通訊需要在androidmanifest.xml加入<uses-permission android:name="android.permission.BLUETOOTH" />,而開關藍牙需要android.permission.BLUETOOTH_ADMIN權限。

  三、建立通訊 establishing

  對於建立一個藍牙通訊,必須經過以下四個步驟:獲取本地藍牙設備、查找遠程設備、配對(已配對設備將會忽略這步的細節)、連接設備和傳輸數據.

  在Android平台中首先我們需要查找本地活動的藍牙適配器,通過BluetoothAdapter類的getDefaultAdapter() 方法獲得一個系統默認可用的藍牙設備,示例代碼如下

  BluetoothAdapter cwjBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
  if (cwjBluetoothAdapter == null) {
    // Android開發網提示大家本機沒有找到藍牙硬件或驅動存在問題
 }

 當然有了這步仍然不能建立連接,因為我們還不知道手機中的藍牙功能是否被開啟,可以通過cwjBluetoothAdapter的.isEnabled方法來判斷,如果沒有開啟,我們可以通過下面的代碼提醒用戶啟用:

  if (!cwjBluetoothAdapter.isEnabled()) {
    Intent TurnOnBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
    startActivityForResult(TurnOnBtIntent, REQUEST_ENABLE_BT);
}
這時用戶會收到類似下面的窗口:

 

  我們通過startActivityForResult()方法發起的Intent將會在onActivityResult()回調方法中獲取用戶的選擇,比如用戶單擊了Yes開啟,那麼將會收到RESULT_OK 的結果,如果RESULT_CANCELED則代表用戶不願意開啟藍牙,當然android123提醒大家還可以通過其他方式來開啟,比如說用BluetoothDevice獲取藍牙服務接口對象,是用enable()方法來開啟,無需詢問用戶,這時就需要用到android.permission.BLUETOOTH_ADMIN權限。

 如何判斷系統藍牙的狀態呢? 建立BroadcastReceiver對象,接收ACTION_STATE_CHANGED動作,在EXTRA_STATE和EXTRA_PREVIOUS_STATE包含了現在狀態和過去的狀態,最終的結果定義是STATE_TURNING_ON正在開啟, STATE_ON已經開啟, STATE_TURNING_OFF正在關閉和 STATE_OFF已經關閉,如果有什麼不明白的可以在我們的論壇中交流。 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved