Android 经典蓝牙简单集成

蓝牙设备配对

1、设置蓝牙权限

permission.bluetooth
permission.bluetooth_admin
permission.coarse.location
复制代码

2、检查设备是否支持蓝牙设备

BluetoothAdapter.getDefaultAdapter() == null//该设备不支持蓝牙
复制代码

3、检查设备是否开启蓝牙

boolean enabled =BluetoothAdapter.getDefaultAdapter().isEnalbed();
复制代码

//蓝牙未开启,开启蓝牙

if(!enabled) {
    Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
    startActivityForResult(intent, REQUST_BLUETOOTH_OPEN);
}
复制代码

4、查找设备

查找设备之前 可以检查已经配对设备

Set<BluetoothDevice> devices =  Bluetooth.getDefaultAdapter().getBondedDevices();
复制代码

查找设备

BluetoothAadpter.getDefaultAdapter().startDiscovery();
复制代码

该查找设备为异步操作,立即返回boolean通知是否开启查找设备成功。 查找结果注册广播获取(BluetoothDevice,BluetoothClass)

BroadcastReceiver br = new BroadcastReceiver {
    public void onReceive (Context context, Intent intent) {
        switch (action) {
            case BluetoothDevice.ACTION_FOUND://发现设备
                break;
            case BluetoothDevice.ACTION_ACL_CONNECTED://连接成功
                break;
            case BluetoothDevice.ACTION_ACL_DISCONNECTED://断开连接
                break;
            case BluetoothDevice.ACTION_PAIRING_REQUEST://正在配对
                break;
        }
    }
}
复制代码

5、配对设备

配对设备,作为服务端进行配对(此处仅考虑客户端情况)

作为客户端进行配对

利用拿到到扫描到的BluetoothDevice 以及UUID获取该设备的BluetoothSocket 伪代码:

BluetoothDevice device = new BluetoothDevice();//实际该设备由扫描获取。
BluetoothSocket socket = device.createRfcommSocketToServceRecord(DEVICE_UUID);
socket.connet();//阻塞方法,异步调用
复制代码

6、设备会话

设备配对后,进行通信会话,利用socket 中的读写流进行会话 socket.getInputStream();//读取(接受设备数据)异步进行 socket.getOutputStream();//发送(发送设备命令),可异步。

转载于:https://juejin.im/post/5a1babc55188254a701ec46a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值