Android的藍牙操作常見問題

BluetoothAdapter是所有Android內(nèi)對藍牙操作的入口
  • 首先需要聲明BluetoothAdapter類型的變量
BluetoothAdapter mbluetoothAdapter;
  • 在對本地藍牙進行操作之前安券,需要先判斷本地藍牙是否已經(jīng)打開
mbluetoothAdapter.isEnabled();
  • 當判斷藍牙為打開之后,調(diào)用適配器的方法來打開藍牙
mbluetoothAdapter.enable();

注意,enable方法返回的是一個布爾值,如果為true則代表打開成功,如果為false,則代表打開失敗,所有后面的操作還需要通過if判斷來進行

  • 通過適配器來打開藍牙還需要在XML文件里面對本應用賦予兩個權(quán)限

  • 打開藍牙還可以調(diào)用Android的API爷狈,即通過intent來與藍牙進行通訊,通過此方法是會對用戶詢問裳擎,是否賦予打開藍牙的權(quán)限涎永。

打開藍牙之后,對藍牙的操作:
  • getname()獲取藍牙的名字
  • getaddress()獲取藍牙的mac地址
  • getState()獲取藍牙的狀態(tài),有四種(打開羡微,關(guān)閉谷饿,正在打開,正在關(guān)閉)

BluetoothSocket

一. 簡介

客戶端與服務端 :

BluetoothSocket 和 BluetoothServerSocket 類似于Java中的套接字的 Socket 和 ServerSocket;

在服務器端和客戶端進行數(shù)據(jù)傳輸?shù)臅r候都要使用這個類;

服務器端 : 使用BluetoothServerSocket對象可以創(chuàng)建一個BluetoothSocket對象, 調(diào)用BluetoothServerSocket的accept()方法就可以獲取該對象;

客戶端 : 調(diào)用BluetoothDevice的createRfcommSocketToServiceRecord()可以獲取該對象;

在服務器端BluetoothServerSocket進行accept()阻塞, 在客戶端BluetoothSocket調(diào)用connect()連接服務器, 如果連接成功, 服務器端的accept()方法就會返回BluetoothSocket對象, 同時客戶端的BluetoothSocket也成功連接服務器, 此時服務器端和客戶端的BluetoothSocket對象就可以獲取輸入輸出流, 對數(shù)據(jù)進行操作;

常見的連接 : 最常見的BluetoothSocket連接是RFCOMM連接, 這是一個面向連接的數(shù)據(jù)交互, 先建立連接, 在進行數(shù)據(jù)交互, 類似于打電話.(面向連接對應無連接, 打電話時面向連接的; 網(wǎng)絡上發(fā)送數(shù)據(jù)是無連接的).

線程安全 : BluetoothSocket是線程安全的, close()方法會終止BluetoothSocket進行的一切操作, 并且同時會關(guān)閉連接;

二. API詳解

常用方法介紹 :

(1)關(guān)閉連接
public void close ()
作用 : 關(guān)閉這個套接字, 并且釋放該對象占用的所有的系統(tǒng)資源; 這個方法可以調(diào)用多次, 但是只有第一次會生效, 多次調(diào)用, 作用的對象都是一個對象;

(2)嘗試連接
public void connect ()
作用 : 嘗試去連接一個遠程設備, 這個方法會一直阻塞, 知道連接成功或者失敗, 如果沒有出現(xiàn)異常就說明連接成功;
注意 : 執(zhí)行這個方法的時候, 不能與藍牙掃描同時進行, 在執(zhí)行該方法前, 要先停止藍牙掃描, 調(diào)用BluetoothAdapter的cancelDiscovery()方法;

(3)獲取輸入流
public InputStream getInputStream ()
作用 : 獲取輸入流

(4)獲取輸出流
public OutputStream getOutputStream ()
作用 : 獲取輸出流

(5)獲取遠程設備
public BluetoothDevice getRemoteDevice ()
作用 : 如果BluetoothSocket處于連接中, 那么返回連接的遠程設備, 如果沒有連接, 那么返回null;

(6)是否連接
public boolean isConnected ()
作用 : 獲取這個BluetoothSocket是否連接;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妈倔,一起剝皮案震驚了整個濱河市博投,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盯蝴,老刑警劉巖毅哗,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異捧挺,居然都是意外死亡虑绵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門闽烙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翅睛,“玉大人,你說我怎么就攤上這事鸣峭『晁” “怎么了酥艳?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵摊溶,是天一觀的道長。 經(jīng)常有香客問我充石,道長莫换,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任骤铃,我火速辦了婚禮拉岁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惰爬。我一直安慰自己喊暖,他們只是感情好,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布撕瞧。 她就那樣靜靜地躺著陵叽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丛版。 梳的紋絲不亂的頭發(fā)上巩掺,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音页畦,去河邊找鬼胖替。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的独令。 我是一名探鬼主播端朵,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼燃箭!你這毒婦竟也來了逸月?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤遍膜,失蹤者是張志新(化名)和其女友劉穎碗硬,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓢颅,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡恩尾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挽懦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翰意。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖信柿,靈堂內(nèi)的尸體忽然破棺而出冀偶,到底是詐尸還是另有隱情,我是刑警寧澤渔嚷,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布进鸠,位于F島的核電站,受9級特大地震影響形病,放射性物質(zhì)發(fā)生泄漏客年。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一漠吻、第九天 我趴在偏房一處隱蔽的房頂上張望量瓜。 院中可真熱鬧,春花似錦途乃、人聲如沸绍傲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烫饼。三九已至,卻和暖如春划提,著一層夾襖步出監(jiān)牢的瞬間枫弟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工鹏往, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淡诗,地道東北人骇塘。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像韩容,于是被迫代替她去往敵國和親款违。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理群凶,服務發(fā)現(xiàn)插爹,斷路器,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 1.簡介 通過藍牙API请梢,可以實現(xiàn)以下內(nèi)容: 掃描其他藍牙設備 查詢配對藍牙設備的本地藍牙適配器 創(chuàng)建RFCOMM...
    justCode_閱讀 4,835評論 0 3
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,913評論 6 13
  • 藍牙 注:本文翻譯自https://developer.android.com/guide/topics/conn...
    RxCode閱讀 8,645評論 11 99
  • 1. Java基礎部分 基礎部分的順序:基本語法赠尾,類相關(guān)的語法,內(nèi)部類的語法毅弧,繼承相關(guān)的語法气嫁,異常的語法,線程的語...
    子非魚_t_閱讀 31,597評論 18 399