鍍金池/ 教程/ Android/ Android Bluetooth(藍(lán)牙)實(shí)例
Android 應(yīng)用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實(shí)例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢(shì)
Android AutoCompleteTextView(自動(dòng)完成)實(shí)例
Android 資源組織和訪問(wèn)
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過(guò)濾器
Android LinearLayout
Android登錄實(shí)例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動(dòng)畫(huà))實(shí)例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復(fù)制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應(yīng)用
Android Alertdialog(警告對(duì)話框)
Android圖片效果
Android內(nèi)部存儲(chǔ)
Android基于位置服務(wù)
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍(lán)牙)實(shí)例
Android RelativeLayout
Android最佳實(shí)踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實(shí)例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開(kāi)發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動(dòng)代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android Bluetooth(藍(lán)牙)實(shí)例

在很多方面,藍(lán)牙是一種能夠發(fā)送或接受兩個(gè)不同的設(shè)備之間傳輸?shù)臄?shù)據(jù)。 Android平臺(tái)包含了藍(lán)牙框架,使設(shè)備以無(wú)線方式與其他藍(lán)牙設(shè)備進(jìn)行數(shù)據(jù)交換的支持。

Android提供藍(lán)牙API來(lái)執(zhí)行這些不同的操作。

  1. 掃描其他藍(lán)牙設(shè)備

  2. 獲取配對(duì)設(shè)備列表

  3. 連接到通過(guò)服務(wù)發(fā)現(xiàn)其他設(shè)備

Android提供BluetoothAdapter類藍(lán)牙通信。通過(guò)調(diào)用創(chuàng)建的對(duì)象的靜態(tài)方法getDefaultAdapter()。其語(yǔ)法如下給出。

private BluetoothAdapter BA;
BA = BluetoothAdapter.getDefaultAdapter();

為了使用設(shè)備的藍(lán)牙,調(diào)用下列藍(lán)牙ACTION_REQUEST_ENABLE的意圖。其語(yǔ)法如下:

Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(turnOn, 0);       

除了這個(gè)常量,有提供其它的API,支持不同任務(wù)的其他常數(shù)。它們?cè)谙旅媪谐觥?/p>

Sr.No 常數(shù)說(shuō)明
1 ACTION_REQUEST_DISCOVERABLE
此常數(shù)用于開(kāi)啟藍(lán)牙的發(fā)現(xiàn)
2 ACTION_STATE_CHANGED
此常量將通知藍(lán)牙狀態(tài)已經(jīng)改變
3 ACTION_FOUND
此常數(shù)用于接收關(guān)于所發(fā)現(xiàn)的每個(gè)設(shè)備的信息

啟用了藍(lán)牙功能之后,可以通過(guò)調(diào)用 getBondedDevices()方法來(lái)獲取配對(duì)設(shè)備列表。它返回一組的藍(lán)牙設(shè)備。其語(yǔ)法如下:

private Set<BluetoothDevice>pairedDevices;
pairedDevices = BA.getBondedDevices();

除了配對(duì)的設(shè)備,還有API,讓更多藍(lán)牙控制權(quán)等方法。它們?cè)谙旅媪谐觥?/p>

Sr.No 方法及說(shuō)明
1 enable()
這種方法使適配器,如果未啟用
2 isEnabled()
如果適配器已啟用此方法返回true
3 disable()
該方法禁用適配器
4 getName()
此方法返回的藍(lán)牙適配器的名稱
5 setName(String name)
此方法更改藍(lán)牙名稱
6 getState()
此方法返回藍(lán)牙適配器的當(dāng)前狀態(tài)
7 startDiscovery()
此方法開(kāi)始藍(lán)牙120秒的發(fā)現(xiàn)過(guò)程。

示例

這個(gè)例子提供了示范BluetoothAdapter類操縱藍(lán)牙,并顯示通過(guò)藍(lán)牙配對(duì)設(shè)備列表。

為了試驗(yàn)這個(gè)例子,需要在實(shí)際設(shè)備上運(yùn)行此程序

步驟 描述
1 使用Android Studio創(chuàng)建Android應(yīng)用程序,并將其命名為Bluetooth,創(chuàng)建這個(gè)項(xiàng)目,確保目標(biāo)SDK編譯在Android SDK的最新版本或使用更高級(jí)別的API。
2 修改 src/MainActivity.java 文件中添加代碼
3 如果修改所需的布局XML文件 res/layout/activity_main.xml  添加GUI組件
4 修改 res/values/string.xml  文件,并添加必要的字符串常量組件
5 修改 AndroidManifest.xml 添加必要的權(quán)限。
6 運(yùn)行應(yīng)用程序并選擇運(yùn)行Android的設(shè)備,并在其上安裝的應(yīng)用和驗(yàn)證結(jié)果。

以下是 src/com.yiibai.bluetooth/MainActivity.java 文件的內(nèi)容:

package com.example.bluetooth;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import android.os.Bundle;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

   private Button On,Off,Visible,list;
   private BluetoothAdapter BA;
   private Set<BluetoothDevice>pairedDevices;
   private ListView lv;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      On = (Button)findViewById(R.id.button1);
      Off = (Button)findViewById(R.id.button2);
      Visible = (Button)findViewById下一篇:發(fā)布Android應(yīng)用