最近研究了两天Android4.0的蓝牙功能,做一个总结:
一.获取当前蓝牙设备
最开始使用BluetoothAdapter的getDefaultAdapter来获取本机的蓝牙设备信息,所获得的对象也为BluetoothAdapter
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
二.获得当前设备已配对的设备信息
Set<BluetoothDevice> devices = bluetoothAdapter.getBondeDevices();
三.打开蓝牙
bluetoothAdapter.enable();
四.关闭蓝牙
bluetoothAdapter.disable();
五.扫描周围的设备
//创建一个InterFilter对象,将其action指定为BluetoothDevice.Action_FOUND
IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
bluetoothReceiver = new BluetoothReceiver();
registerReceiver(bluetoothReceiver , intentFilter);
//创建广播,当调用方法bluetoothAdapter.startDiscovery(),程序执行广播
private class BluetoothReceiver extends BroadcastReceiver{
public void onReceive(Context context , Intent intent){
String action = intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action)){
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
DeviceDetail detail = new DeviceDetail(device.getName(),device.getBondState(),device.getAddress());
lstDevice.add(detail);
((BaseAdapter)lv_device.getAdapter()).notifyDataSetChanged();
}
}
}
//关闭广播
public void onDestroy(){
unregisterReceiver(bluetoothReceiver);
}
六.获得BluetoothDevice设备以后
getName()获取扫描到的设备的名称
getBoneState()获取连接状态 (1.已配对 , 2.正在配对 3.未配对)
getMac()获取设备MAC地址
七.设置蓝牙可见性
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
//设置蓝牙可见性的时间(最长时间仅为300秒)
intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(intent);
八.权限管理
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>