在很多方面,藍(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í)行這些不同的操作。
掃描其他藍(lán)牙設(shè)備
獲取配對(duì)設(shè)備列表
連接到通過(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)用