1.什麼是藍牙
Bluetooth是目前使用的最廣泛的無線通訊協議之一
主要針對短距離設備通訊(10米)
常用於連接耳機、鼠標和移動通訊設備等
2.發現周圍藍牙設備
BluetoothAdapter:代表了本地的藍牙適配器
BluetoothDevice:代表一個遠程的藍牙設備
掃描已配對的藍牙設備方法:
1.在AndroidManifest.xml聲明藍牙權限
<uses-permission android:name="android.permission.BLUETOOTH" />
2.獲得BluetoothAdapter對象
3.判斷當前設備中是否擁有藍牙設備
4.判斷當前設備中藍牙設備是否已經打開
5.得到已經配對的藍牙設備對象
BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
if(btAdapter != null){
if(btAdapter.isEnabled()){
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(intent);
Set<BluetoothDevice> devices = adapter.getBondedDevices();
if(devices.size() > 0){
for(Iterator iterator = devices.iterator(); iterator.hasNext()){
BluetoothDevice device = (BluetoothDevice)iterator.next();
System.out.println(bluetoothDevice.getAddress());
}
}
else System.out.println("沒有綁定的藍牙設備");
}
else System.out.println("藍牙設備未正常啓動");
}
else System.out.println("無藍牙設備");
3.修改本機藍牙設備的可見性
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); //可見持續300秒,不能超過300秒
startActivity(intent);
4.掃描周圍可用的藍牙設備
//1.註冊一個廣播,用於接收“發現設備”的廣播
IntentFilter intentFilter = IntentFilter(BluetoothAdapter.ACTION_FOUND);
BluetoothReceiver receiver = new BluetoothReceiver();
registerReceiver(receiver, intentFilter);
//2.創建藍牙適配器,並開始掃描
BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
btAdapter.startDiscovery();
//3.繼續廣播接收類,處理接收到的廣播
private class BluetoothReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent){
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
System.out.println(device.getAddress());
}
}