色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

          1. 概述

          本文引用地址:http://cafeforensic.com/article/154455.htm

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

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

            首先看聊天室的效果圖:

            

          1.gif

            2. Bluetooth 通信 API 介紹2.1. Bluetooth 通信過(guò)程

            

          2.gif

          2.2. Bluetooth API 的主要方法

            BluetoothAdapter 類(lèi)

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

            isDiscovering() :返回設(shè)備是否正在發(fā)現(xiàn)周?chē){(lán)牙設(shè)備;

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

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

            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è)備沒(méi)有打開(kāi)對(duì)外可見(jiàn)模式,則傳遞 Intent 來(lái)調(diào)用打開(kāi)可發(fā)現(xiàn)模式,代碼如下:

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

            startActivity(discoverableIntent);

            復(fù)制代碼

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

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

            BluetoothSocket 類(lèi)

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

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

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

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

            InputStream 類(lèi):

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

            OutputStream 類(lèi):

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

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


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



          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉