蓝牙开发学习笔记

设置蓝牙

1.获取BluetoothAdapter(自身蓝牙适配器)

BluetoothAdapter  mBluetoothAdapter = BluetoothAdapter.getdefaultAdapter();
if (mBluetoothAdapter == null){
    //表示手机不支持蓝牙;
}

2.启用蓝牙
//如果手机蓝牙没有打开,就会跳转到手机系统蓝牙界面

if (!mBluetoothAdapter.isEnable()){
    Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
    startActivityForResult(enableIntent,REQUEST_ENABLE_BT);
}

通过上面方法将显示对话框请求用户打开蓝牙,如果点击允许,系统将开启蓝牙,并返回App

查找设备
扫描设备,搜索附近开启蓝牙的设备,需先配对,然后连接

查询配对的设备

 Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
 if(pairedDevices.size > 0){
     for(BluetoothDevice devices : pairedDevices){
         mArrayAdapter.add(devices.getName)  + "\n" + device.getAddress());
     }
 }

要发起连接,BluetoothAdapter对象仅仅需要提供MAC地址

发现设备
要开始发现设备,只需要调用startDiscovery(),
需要注册一个广播,接收每台发现的设备进行页面扫描,检索其蓝牙名称。

private final BroadCastReceiver mReceiver = new 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);
            mArrayAdapter.add(device.getName() + "\n" + device.getAddress());
        }
    }
}

//注册广播

IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter);
发布了13 篇原创文章 · 获赞 2 · 访问量 589

猜你喜欢

转载自blog.csdn.net/qq_42806685/article/details/98845840