android藍(lán)牙相關(guān)

1.android藍(lán)牙的幾個(gè)基本概念

  • 權(quán)限
<uses-permissionandroid:name="[Android](http://lib.csdn.net/base/android).permission.BLUETOOTH" />
允許程序連接到已配對(duì)的藍(lán)牙設(shè)備问拘。
<uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN" />
允許程序發(fā)現(xiàn)和配對(duì)藍(lán)牙設(shè)備铁材。
  • 操作藍(lán)牙主要用到的類 BluetoothAdapter類,使用時(shí)導(dǎo)包
import android.bluetooth.BluetoothAdapter;

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
  • 開啟藍(lán)牙
 if(!mBluetoothAdapter.isEnabled()){  
//彈出對(duì)話框提示用戶是后打開  
Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);  
startActivityForResult(enabler, REQUEST_ENABLE);  
      //不做提示栈妆,直接打開,不建議用下面的方法,有的手機(jī)會(huì)有問題嘁信。  
      // mBluetoothAdapter.enable();  
}  
  • 獲取本地藍(lán)牙信息

//獲取本機(jī)藍(lán)牙名稱  
String name = mBluetoothAdapter.getName();  
//獲取本機(jī)藍(lán)牙地址  
String address = mBluetoothAdapter.getAddress();  
Log.d(TAG,"bluetooth name ="+name+" address ="+address);  
//獲取已配對(duì)藍(lán)牙設(shè)備  
Set<BluetoothDevice> devices = mBluetoothAdapter.getBondedDevices();  
Log.d(TAG, "bonded device size ="+devices.size());  
for(BluetoothDevice bonddevice:devices){  
    Log.d(TAG, "bonded device name ="+bonddevice.getName()+" address"+bonddevice.getAddress());  
}  
  • 搜索設(shè)備:
    mBluetoothAdapter.startDiscovery();
    開始搜索設(shè)備勤哗,該過程是異步的抡爹,通過下面注冊(cè)廣播接受者,可以監(jiān)聽是否搜到設(shè)備芒划。
IntentFilter filter = new IntentFilter();  
//發(fā)現(xiàn)設(shè)備  
filter.addAction(BluetoothDevice.ACTION_FOUND);  
//設(shè)備連接狀態(tài)改變  
filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);  
//藍(lán)牙設(shè)備狀態(tài)改變  
filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);  
registerReceiver(mBluetoothReceiver, filter);  
  • 監(jiān)聽掃描結(jié)果
private BroadcastReceiver mBluetoothReceiver = new BroadcastReceiver(){  
        @Override  
        public void onReceive(Context context, Intent intent) {  
            String action = intent.getAction();  
            Log.d(TAG,"mBluetoothReceiver action ="+action);  
            if(BluetoothDevice.ACTION_FOUND.equals(action)){//每掃描到一個(gè)設(shè)備冬竟,系統(tǒng)都會(huì)發(fā)送此廣播。  
                //獲取藍(lán)牙設(shè)備  
                BluetoothDevice scanDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);  
                if(scanDevice == null || scanDevice.getName() == null) return;  
                Log.d(TAG, "name="+scanDevice.getName()+"address="+scanDevice.getAddress());  
                //藍(lán)牙設(shè)備名稱  
                String name = scanDevice.getName();  
                if(name != null && name.equals(VnApplication.BLUETOOTH_NAME)){  
                    mBluetoothAdapter.cancelDiscovery();  
                    //取消掃描  
                    mProgressDialog.setTitle(getResources().getString(R.string.progress_connecting));                   //連接到設(shè)備民逼。  
                    mBlthChatUtil.connect(scanDevice);  
                }  
            }else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)){  
  
            }  
        }  
          
    };  
  • 連接:
    此方法中主要是獲取socket客戶端诱咏,并連接。
BluetoothSocket  mmSocket = device.createRfcommSocketToServiceRecord(MY_UUID);
mmSocket.connect();
  • 連接成功后缴挖,獲取輸入輸出流袋狞,進(jìn)行通信
    當(dāng)連接成功后,connected(mmSocket, mmDevice); 獲取輸入輸出流映屋,從而進(jìn)行通信苟鸯。
    private InputStream mmInStream = socket.getInputStream();
    private OutputStream mmOutStream =socket.getOutputStream();

mmOutStream.write(buffer);發(fā)送信息。
mmInStream.read(buffer); 收到消息棚点。

Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末早处,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瘫析,更是在濱河造成了極大的恐慌砌梆,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贬循,死亡現(xiàn)場(chǎng)離奇詭異咸包,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)杖虾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門烂瘫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奇适,你說我怎么就攤上這事坟比÷ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵葛账,是天一觀的道長柠衅。 經(jīng)常有香客問我,道長籍琳,這世上最難降的妖魔是什么菲宴? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮巩割,結(jié)果婚禮上裙顽,老公的妹妹穿的比我還像新娘。我一直安慰自己宣谈,他們只是感情好愈犹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著闻丑,像睡著了一般漩怎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嗦嗡,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天勋锤,我揣著相機(jī)與錄音,去河邊找鬼侥祭。 笑死叁执,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矮冬。 我是一名探鬼主播谈宛,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼胎署!你這毒婦竟也來了吆录?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤琼牧,失蹤者是張志新(化名)和其女友劉穎恢筝,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體巨坊,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撬槽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抱究。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恢氯。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鼓寺,靈堂內(nèi)的尸體忽然破棺而出勋拟,到底是詐尸還是另有隱情,我是刑警寧澤妈候,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布敢靡,位于F島的核電站,受9級(jí)特大地震影響苦银,放射性物質(zhì)發(fā)生泄漏啸胧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一幔虏、第九天 我趴在偏房一處隱蔽的房頂上張望纺念。 院中可真熱鬧,春花似錦想括、人聲如沸陷谱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烟逊。三九已至,卻和暖如春铺根,著一層夾襖步出監(jiān)牢的瞬間宪躯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國打工位迂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留访雪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓掂林,卻偏偏與公主長得像臣缀,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子党饮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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

  • 1.簡(jiǎn)介 通過藍(lán)牙API肝陪,可以實(shí)現(xiàn)以下內(nèi)容: 掃描其他藍(lán)牙設(shè)備 查詢配對(duì)藍(lán)牙設(shè)備的本地藍(lán)牙適配器 創(chuàng)建RFCOMM...
    justCode_閱讀 4,835評(píng)論 0 3
  • 藍(lán)牙 注:本文翻譯自https://developer.android.com/guide/topics/conn...
    RxCode閱讀 8,645評(píng)論 11 99
  • Android 藍(lán)牙相關(guān)的廣播 監(jiān)聽藍(lán)牙相關(guān)的廣播并獲得相關(guān)的信息,藍(lán)牙相關(guān)的廣播主要集中在BluetoothAd...
    CoderMiner閱讀 11,978評(píng)論 8 13
  • 前言 此外本文只涉及經(jīng)典藍(lán)牙(Classic Bluetooth)的點(diǎn)對(duì)點(diǎn)通信開發(fā)刑顺,并不涉及低功耗藍(lán)牙(BLE)的...
    楊盧陽閱讀 4,265評(píng)論 5 15
  • 行歸路氯窍,打王者。 一人行蹲堂,三人行狼讨。 醉者,醒者柒竞。 誰在醉政供,誰在醒。 又有誰是真的行路者。 行歸路布隔,游戲敗离陶。 時(shí)而左...
    瘋子_bda9閱讀 387評(píng)論 3 1