編輯:關於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.代碼實現 public class ErinieShow extends
Android的屏幕適配一直以來都在折磨著我們這些開發者,本篇文章以Google的官方文檔為基礎,全面而深入的講解了Android屏幕適配的原因、重要概念、解決方案及最
你現在還是把錢都存在余額寶?相信你也注意到,現在理財方式越來越多,余額寶的收益也越來越低,比如說財付通的理財通,性質類似於余額寶。現在微信也有理財通,收益還
本文是對已實現的藍牙防丟器項目的總結,闡述藍牙防丟器的原理、實現與android客戶端的藍牙BLE接口編程。在這裡重點關注如何利用BLE接口來進行工程實現,對於BLE的協