Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android bluetooth開發實踐

Android bluetooth開發實踐

編輯:關於Android編程

Android提供藍牙API來執行這些不同的操作:

掃描其他藍牙設備

工作流程

首先兩個設備上都要有藍牙設備或者專業一點叫藍牙適配器,以手機和電腦為例我畫了如下流程圖。其次在手機上進行掃描,掃描周圍藍藍牙設備,先找到手機附近的電腦,然後給它發出一個信號需要進行藍牙的配對,再次返回一個信號說明手機和電腦已經配對成功了,最後配對成功後可以進行文件傳輸了。這是一個最基本的一個流程。

這裡寫圖片描述

藍牙API分析

Android提供藍牙API來執行這些不同的操作:

掃描其他藍牙設備

獲取配對設備列表

連接到通過服務發現其他設備

Android所有關於藍牙開發的類都在android.bluetooth包下,如下圖,只有8個類:

這裡寫圖片描述

但是我們需要用到的就三個而已:BluetoothAdapter、BluetoothDevice、BluetoothServerSocket和BluetoothSocket,下面分別講解。

BluetoothAdapter

顧名思義,藍牙適配器,直到我們建立bluetoothSocket連接之前,都需要不斷操作BluetoothAdapter裡的很多方法,常用的有以下幾個:

getDefaultAdapter()—靜態方法,獲取默認BluetoothAdapter,實際上,也只有這一種方法獲取BluetoothAdapter

getName()—獲取本地藍牙名稱

getAddress()—獲取本地藍牙地址

getState()—獲取本地藍牙適配器當前狀態(感覺可能調試的時候更需要)

getRemoteDevice(String address)—根據藍牙地址獲取遠程藍牙設備

startDiscovery()—開始搜索,這是搜索的第一步

cancelDiscovery()—取消搜索,也就是說當我們正在搜索設備的時候調用這個方法將不再繼續搜索

isDiscovering()—判斷當前是否正在查找設備,是返回true

enable()—打開藍牙,這個方法打開藍牙不會彈出提示,更多的時候我們需要問下用戶是否打開,以下這兩行代碼同樣是打開藍牙,不過會提示用戶:

Intent enabler=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(enabler,reCode);//同startActivity(enabler);1212

disable()—關閉藍牙

isEnabled()—判斷藍牙是否打開,已打開返回true,否則,返回false

listenUsingRfcommWithServiceRecord(String name,UUID uuid)—根據名稱,UUID創建並返回BluetoothServerSocket,這是創建BluetoothSocket服務器端的第一步

開發實戰

首先,要操作藍牙,先要在AndroidManifest.xml裡加入權限:

獲取配對設備列表

連接到通過服務發現其他設備

Android所有關於藍牙開發的類都在android.bluetooth包下,如下圖,只有8個類:

這裡寫圖片描述

但是我們需要用到的就三個而已:BluetoothAdapter、BluetoothDevice、BluetoothServerSocket和BluetoothSocket,下面分別講解。

BluetoothAdapter

顧名思義,藍牙適配器,直到我們建立bluetoothSocket連接之前,都需要不斷操作BluetoothAdapter裡的很多方法,常用的有以下幾個:

getDefaultAdapter()—靜態方法,獲取默認BluetoothAdapter,實際上,也只有這一種方法獲取BluetoothAdapter

getName()—獲取本地藍牙名稱

getAddress()—獲取本地藍牙地址

getState()—獲取本地藍牙適配器當前狀態(感覺可能調試的時候更需要)

getRemoteDevice(String address)—根據藍牙地址獲取遠程藍牙設備

startDiscovery()—開始搜索,這是搜索的第一步

cancelDiscovery()—取消搜索,也就是說當我們正在搜索設備的時候調用這個方法將不再繼續搜索

isDiscovering()—判斷當前是否正在查找設備,是返回true

enable()—打開藍牙,這個方法打開藍牙不會彈出提示,更多的時候我們需要問下用戶是否打開,以下這兩行代碼同樣是打開藍牙,不過會提示用戶:

Intent enabler=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(enabler,reCode);//同startActivity(enabler);1212

disable()—關閉藍牙

isEnabled()—判斷藍牙是否打開,已打開返回true,否則,返回false

listenUsingRfcommWithServiceRecord(String name,UUID uuid)—根據名稱,UUID創建並返回BluetoothServerSocket,這是創建BluetoothSocket服務器端的第一步。

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