新聞中心

        EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > Android上藍(lán)牙通信功能開發(fā)

        Android上藍(lán)牙通信功能開發(fā)

        作者: 時(shí)間:2012-07-09 來源:網(wǎng)絡(luò) 收藏

        1. 概述

        本文引用地址:http://www.104case.com/article/154455.htm

          Bluetooth 是幾乎現(xiàn)在每部手機(jī)標(biāo)準(zhǔn)配備的,多用于耳機(jī) mic 等設(shè)備與手機(jī)的連接,除此之外,還可以多部手機(jī)之間建立 bluetooth ,本文就通過 SDK 中帶的一個(gè)聊天室的例程,來介紹一下 上的 Bluetooth 的

          在 1.x 的時(shí)候,相關(guān) API 非常不完善,還不能簡(jiǎn)單的使用 Bluetooth ,有一個(gè)開源項(xiàng)目可以幫助程序員使用、,支持直接方法bluetooth 協(xié)議棧。在 2 以后,框架提供了一些官方 API 來進(jìn)行,但目前的程序也比較不完善。本文主要討論 Android2 后的Bluetooth 的 API 使用方法。

          首先看聊天室的效果圖:

          

        1.gif

          2. Bluetooth 通信 API 介紹2.1. Bluetooth 通信過程

          

        2.gif

        2.2. Bluetooth API 的主要方法

          BluetoothAdapter 類

          BluetoothAdapter.getDefaultAdapter() :得到本地默認(rèn)的 BluetoothAdapter ,若返回為 null 則表示本地不支持;

          isDiscovering() :返回設(shè)備是否正在發(fā)現(xiàn)周圍藍(lán)牙設(shè)備;

          cancelDiscovery() :取消正在發(fā)現(xiàn)遠(yuǎn)程藍(lán)牙設(shè)備的過程;

          startDiscovery() :開始發(fā)現(xiàn)過程;

          getScanMode() :得到本地藍(lán)牙設(shè)備的 Scan Mode ;

          getBondedDevices() :得到已配對(duì)的設(shè)備;

          isEnabled() :藍(lán)牙是否啟用。

          當(dāng)發(fā)現(xiàn)藍(lán)牙未啟用時(shí),如下調(diào)用設(shè)置啟用藍(lán)牙:

          if (! mBluetoothAdapter .isEnabled()) {

          Intent enableIntent = new Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE );

          startActivityForResult(enableIntent, REQUEST_ENABLE_BT );

          }

          復(fù)制代碼

          如果發(fā)現(xiàn)當(dāng)前設(shè)備沒有打開對(duì)外可見模式,則傳遞 Intent 來調(diào)用打開可發(fā)現(xiàn)模式,代碼如下:

          Intent discoverableIntent = new Intent(BluetoothAdapter. ACTION_REQUEST_DISCOVERABLE ); discoverableIntent.putExtra(BluetoothAdapter. EXTRA_DISCOVERABLE_DURATION , 300);

          startActivity(discoverableIntent);

          復(fù)制代碼

          BluetoothDevice 類,此為對(duì)應(yīng)的遠(yuǎn)程藍(lán)牙 Device

          createRfcommSocketToServiceRecord() :創(chuàng)建該 Device 的 socket 。

          BluetoothSocket 類

          connect() :請(qǐng)求連接藍(lán)牙。

          getInputStream() :得到輸入流,用于接收遠(yuǎn)程方信息。

          getOutputStream() :得到輸出流,發(fā)送給遠(yuǎn)程方的信息。

          close() :關(guān)閉藍(lán)牙連接。

          InputStream 類:

          read(byte[]) :以阻塞方式讀取輸入流。

          OutputStream 類:

          write(byte[]) :將信息寫入該輸出流,發(fā)送給遠(yuǎn)程。

        數(shù)字通信相關(guān)文章:數(shù)字通信原理


        通信相關(guān)文章:通信原理



        上一頁 1 2 下一頁

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 库尔勒市| 黎平县| 万宁市| 灵台县| 南澳县| 长白| 仪征市| 石渠县| 汨罗市| 贵阳市| 甘肃省| 白沙| 晋宁县| 碌曲县| 房产| 长宁县| 马山县| 屏南县| 遂川县| 六安市| 台中市| 杭锦后旗| 高台县| 宝兴县| 磐石市| 西青区| 岳阳县| 曲沃县| 西贡区| 明光市| 长子县| 开封市| 建水县| 大邑县| 横山县| 开鲁县| 衡水市| 葫芦岛市| 丽江市| 台中市| 桃园县|